~sil/u1db/http-all-docs

« back to all changes in this revision

Viewing changes to u1db/tests/test_oauth_middleware.py

  • Committer: Tarmac
  • Author(s): Eric Casteleijn
  • Date: 2012-08-14 14:55:10 UTC
  • mfrom: (375.1.1 deprecate-simplejson)
  • Revision ID: tarmac-20120814145510-9q1yb1vt8oyrgpo9
Removed simplejson as a hard dependency. It will still be used if present.

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
"""Test OAuth wsgi middleware"""
18
18
import paste.fixture
19
19
from oauth import oauth
20
 
import simplejson
 
20
try:
 
21
    import simplejson as json
 
22
except ImportError:
 
23
    import json  # noqa
21
24
import time
22
25
 
23
26
from u1db import tests
33
36
    def setUp(self):
34
37
        super(TestAuthMiddleware, self).setUp()
35
38
        self.got = []
 
39
 
36
40
        def witness_app(environ, start_response):
37
41
            start_response("200 OK", [("content-type", "text/plain")])
38
42
            self.got.append((environ['token_key'], environ['PATH_INFO'],
39
43
                             environ['QUERY_STRING']))
40
44
            return ["ok"]
 
45
 
41
46
        class MyOAuthMiddleware(OAuthMiddleware):
42
47
            get_oauth_data_store = lambda self: tests.testingOAuthStore
43
48
 
45
50
                consumer, token = super(MyOAuthMiddleware, self).verify(
46
51
                    environ, oauth_req)
47
52
                environ['token_key'] = token.key
 
53
 
48
54
        self.oauth_midw = MyOAuthMiddleware(witness_app, BASE_URL)
49
55
        self.app = paste.fixture.TestApp(self.oauth_midw)
50
56
 
60
66
        resp = self.app.delete(url, expect_errors=True)
61
67
        self.assertEqual(401, resp.status)
62
68
        self.assertEqual('application/json', resp.header('content-type'))
63
 
        self.assertEqual({"error": "unauthorized",
64
 
                          "message": "Missing OAuth."},
65
 
                         simplejson.loads(resp.body))
 
69
        self.assertEqual(
 
70
            {"error": "unauthorized", "message": "Missing OAuth."},
 
71
            json.loads(resp.body))
66
72
 
67
73
    def test_oauth_in_query_string(self):
68
74
        url = BASE_URL + '/~/foo/doc/doc-id'
97
103
                               expect_errors=True)
98
104
        self.assertEqual(401, resp.status)
99
105
        self.assertEqual('application/json', resp.header('content-type'))
100
 
        err = simplejson.loads(resp.body)
 
106
        err = json.loads(resp.body)
101
107
        self.assertEqual({"error": "unauthorized",
102
108
                          "message": err['message']},
103
109
                         err)
155
161
        self.oauth_midw.timestamp_threshold = 1
156
162
        resp = self.app.delete(oauth_req.to_url(), expect_errors=True)
157
163
        self.assertEqual(401, resp.status)
158
 
        err = simplejson.loads(resp.body)
 
164
        err = json.loads(resp.body)
159
165
        self.assertIn('Expired timestamp', err['message'])
160
166
        self.assertIn('threshold 1', err['message'])