diff options
| author | José Padilla <jpadilla@webapplicate.com> | 2014-10-22 01:23:30 -0400 |
|---|---|---|
| committer | José Padilla <jpadilla@webapplicate.com> | 2014-10-22 01:23:30 -0400 |
| commit | 23d1293c8fed2c2aeb90a5c322c4bc222b7a0517 (patch) | |
| tree | 0ec9873c262743b1ba05c7e2a3e6b275cc590c53 /tests/test_jwt.py | |
| parent | 19da9413e95ad56aee62d537e18062f312b4f303 (diff) | |
| download | pyjwt-23d1293c8fed2c2aeb90a5c322c4bc222b7a0517.tar.gz | |
Implement Audience and Issuer claims
Diffstat (limited to 'tests/test_jwt.py')
| -rw-r--r-- | tests/test_jwt.py | 120 |
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() |
