Esempio n. 1
0
 def test_json_encode(self):
     # json deals with strings, not bytes.  On python 2 byte strings will
     # convert automatically if they are utf8; on python 3 byte strings
     # are not allowed.
     self.assertEqual(json_decode(json_encode(u("\u00e9"))), u("\u00e9"))
     if bytes_type is str:
         self.assertEqual(json_decode(json_encode(utf8(u("\u00e9")))), u("\u00e9"))
         self.assertRaises(UnicodeDecodeError, json_encode, b"\xe9")
Esempio n. 2
0
    def test_json_decode(self):
        # json_decode accepts both bytes and unicode, but strings it returns
        # are always unicode.
        self.assertEqual(json_decode(b'"foo"'), u("foo"))
        self.assertEqual(json_decode(u('"foo"')), u("foo"))

        # Non-ascii bytes are interpreted as utf8
        self.assertEqual(json_decode(utf8(u('"\u00e9"'))), u("\u00e9"))
    def test_types(self):
        headers = {"Cookie": "foo=bar"}
        response = self.fetch("/typecheck?foo=bar", headers=headers)
        data = json_decode(response.body)
        self.assertEqual(data, {})

        response = self.fetch("/typecheck", method="POST", body="foo=bar", headers=headers)
        data = json_decode(response.body)
        self.assertEqual(data, {})
 def test_double_slash(self):
     # urlparse.urlsplit (which webalchemy.tornado.httpserver used to use
     # incorrectly) would parse paths beginning with "//" as
     # protocol-relative urls.
     response = self.fetch("//doubleslash")
     self.assertEqual(200, response.code)
     self.assertEqual(json_decode(response.body), {})
Esempio n. 5
0
 def test_oauth10a_request_parameters(self):
     response = self.fetch('/oauth10a/client/request_params')
     response.rethrow()
     parsed = json_decode(response.body)
     self.assertEqual(parsed['oauth_consumer_key'], 'asdf')
     self.assertEqual(parsed['oauth_token'], 'uiop')
     self.assertTrue('oauth_nonce' in parsed)
     self.assertTrue('oauth_signature' in parsed)
Esempio n. 6
0
 def test_oauth10a_get_user(self):
     response = self.fetch(
         '/oauth10a/client/login?oauth_token=zxcv',
         headers={'Cookie': '_oauth_request_token=enhjdg==|MTIzNA=='})
     response.rethrow()
     parsed = json_decode(response.body)
     self.assertEqual(parsed['email'], '*****@*****.**')
     self.assertEqual(parsed['access_token'], dict(key='uiop', secret='5678'))
Esempio n. 7
0
 def test_twitter_get_user(self):
     response = self.fetch(
         '/twitter/client/login?oauth_token=zxcv',
         headers={'Cookie': '_oauth_request_token=enhjdg==|MTIzNA=='})
     response.rethrow()
     parsed = json_decode(response.body)
     self.assertEqual(parsed,
                      {u('access_token'): {u('key'): u('hjkl'),
                                           u('screen_name'): u('foo'),
                                           u('secret'): u('vbnm')},
                       u('name'): u('Foo'),
                       u('screen_name'): u('foo'),
                       u('username'): u('foo')})
 def test_multipart_form(self):
     # Encodings here are tricky:  Headers are latin1, bodies can be
     # anything (we use utf8 by default).
     response = self.raw_fetch([
         b"POST /multipart HTTP/1.0",
         b"Content-Type: multipart/form-data; boundary=1234567890",
         b"X-Header-encoding-test: \xe9",
     ],
         b"\r\n".join([
             b"Content-Disposition: form-data; name=argument",
             b"",
             u("\u00e1").encode("utf-8"),
             b"--1234567890",
             u('Content-Disposition: form-data; name="files"; filename="\u00f3"').encode("utf8"),
             b"",
             u("\u00fa").encode("utf-8"),
             b"--1234567890--",
             b"",
         ]))
     data = json_decode(response.body)
     self.assertEqual(u("\u00e9"), data["header"])
     self.assertEqual(u("\u00e1"), data["argument"])
     self.assertEqual(u("\u00f3"), data["filename"])
     self.assertEqual(u("\u00fa"), data["filebody"])
 def test_empty_post_parameters(self):
     response = self.fetch("/echo", method="POST", body="foo=&bar=")
     data = json_decode(response.body)
     self.assertEqual(data, {u("foo"): [u("")], u("bar"): [u("")]})
Esempio n. 10
0
 def test_empty_query_string(self):
     response = self.fetch("/echo?foo=&foo=")
     data = json_decode(response.body)
     self.assertEqual(data, {u("foo"): [u(""), u("")]})
Esempio n. 11
0
 def test_query_string_encoding(self):
     response = self.fetch("/echo?foo=%C3%A9")
     data = json_decode(response.body)
     self.assertEqual(data, {u("foo"): [u("\u00e9")]})
Esempio n. 12
0
 def fetch_json(self, *args, **kwargs):
     response = self.fetch(*args, **kwargs)
     response.rethrow()
     return json_decode(response.body)
Esempio n. 13
0
 def test_google_get_user(self):
     response = self.fetch('/google/client/openid_login?openid.mode=blah&openid.ns.ax=http://openid.net/srv/ax/1.0&openid.ax.type.email=http://axschema.org/contact/email&[email protected]', follow_redirects=False)
     response.rethrow()
     parsed = json_decode(response.body)
     self.assertEqual(parsed["email"], "*****@*****.**")
Esempio n. 14
0
 def test_twitter_show_user_future(self):
     response = self.fetch('/twitter/client/show_user_future?name=somebody')
     response.rethrow()
     self.assertEqual(json_decode(response.body),
                      {'name': 'Somebody', 'screen_name': 'somebody'})