summaryrefslogtreecommitdiff
path: root/tests/test_jwt.py
diff options
context:
space:
mode:
authorJosé Padilla <jpadilla@webapplicate.com>2014-10-22 01:23:30 -0400
committerJosé Padilla <jpadilla@webapplicate.com>2014-10-22 01:23:30 -0400
commit23d1293c8fed2c2aeb90a5c322c4bc222b7a0517 (patch)
tree0ec9873c262743b1ba05c7e2a3e6b275cc590c53 /tests/test_jwt.py
parent19da9413e95ad56aee62d537e18062f312b4f303 (diff)
downloadpyjwt-23d1293c8fed2c2aeb90a5c322c4bc222b7a0517.tar.gz
Implement Audience and Issuer claims
Diffstat (limited to 'tests/test_jwt.py')
-rw-r--r--tests/test_jwt.py120
1 files changed, 120 insertions, 0 deletions
diff --git a/tests/test_jwt.py b/tests/test_jwt.py
index 48236fe..b654800 100644
--- a/tests/test_jwt.py
+++ b/tests/test_jwt.py
@@ -691,6 +691,126 @@ class TestJWT(unittest.TestCase):
self.assertFalse('ES384' in jwt.prepare_key_methods)
self.assertFalse('ES512' in jwt.prepare_key_methods)
+ def test_check_audience(self):
+ audience = 'urn:foo'
+
+ payload = {
+ 'some': 'payload',
+ 'aud': 'urn:foo'
+ }
+
+ token = jwt.encode(payload, 'secret')
+ decoded = jwt.decode(token, 'secret', audience=audience)
+
+ self.assertEqual(decoded, payload)
+
+ def test_check_audience_in_array(self):
+ audience = ['urn:foo', 'urn:other']
+
+ payload = {
+ 'some': 'payload',
+ 'aud': 'urn:foo'
+ }
+
+ token = jwt.encode(payload, 'secret')
+ decoded = jwt.decode(token, 'secret', audience=audience)
+
+ self.assertEqual(decoded, payload)
+
+ def test_raise_exception_invalid_audience(self):
+ audience = 'urn:wrong'
+
+ payload = {
+ 'some': 'payload',
+ 'aud': 'urn:foo'
+ }
+
+ token = jwt.encode(payload, 'secret')
+
+ self.assertRaises(
+ jwt.InvalidAudience,
+ lambda: jwt.decode(token, 'secret', audience=audience))
+
+ def test_raise_exception_invalid_audience_in_array(self):
+ audience = ['urn:wrong', 'urn:morewrong']
+
+ payload = {
+ 'some': 'payload',
+ 'aud': 'urn:foo'
+ }
+
+ token = jwt.encode(payload, 'secret')
+
+ self.assertRaises(
+ jwt.InvalidAudience,
+ lambda: jwt.decode(token, 'secret', audience=audience))
+
+ def test_raise_exception_token_without_audience(self):
+ audience = 'urn:wrong'
+
+ payload = {
+ 'some': 'payload',
+ }
+
+ token = jwt.encode(payload, 'secret')
+
+ self.assertRaises(
+ jwt.InvalidAudience,
+ lambda: jwt.decode(token, 'secret', audience=audience))
+
+ def test_raise_exception_token_without_audience_in_array(self):
+ audience = ['urn:wrong', 'urn:morewrong']
+
+ payload = {
+ 'some': 'payload',
+ }
+
+ token = jwt.encode(payload, 'secret')
+
+ self.assertRaises(
+ jwt.InvalidAudience,
+ lambda: jwt.decode(token, 'secret', audience=audience))
+
+ def test_check_issuer(self):
+ issuer = 'urn:foo'
+
+ payload = {
+ 'some': 'payload',
+ 'iss': 'urn:foo'
+ }
+
+ token = jwt.encode(payload, 'secret')
+ decoded = jwt.decode(token, 'secret', issuer=issuer)
+
+ self.assertEqual(decoded, payload)
+
+ def test_raise_exception_invalid_issuer(self):
+ issuer = 'urn:wrong'
+
+ payload = {
+ 'some': 'payload',
+ 'iss': 'urn:foo'
+ }
+
+ token = jwt.encode(payload, 'secret')
+
+ self.assertRaises(
+ jwt.InvalidIssuer,
+ lambda: jwt.decode(token, 'secret', issuer=issuer))
+
+ def test_raise_exception_token_without_issuer(self):
+ issuer = 'urn:wrong'
+
+ payload = {
+ 'some': 'payload',
+ }
+
+ token = jwt.encode(payload, 'secret')
+
+ self.assertRaises(
+ jwt.InvalidIssuer,
+ lambda: jwt.decode(token, 'secret', issuer=issuer))
+
if __name__ == '__main__':
unittest.main()