diff options
author | Mark Adams <mark@markadams.me> | 2015-04-08 22:50:20 -0500 |
---|---|---|
committer | Mark Adams <mark@markadams.me> | 2015-04-12 20:57:39 -0500 |
commit | 90577f7cef93c4d9e8b6168212f29129fa2b3f71 (patch) | |
tree | bc139694dab69a8047140109a33eb2e9b30c7376 | |
parent | a39b62eacc404f78094a5dfdf3b2e7113eea2f11 (diff) | |
download | pyjwt-90577f7cef93c4d9e8b6168212f29129fa2b3f71.tar.gz |
Added a test to improve coverage and cleaned up some existing tests.
-rw-r--r-- | jwt/api.py | 2 | ||||
-rw-r--r-- | tests/test_algorithms.py | 18 | ||||
-rw-r--r-- | tests/test_api.py | 21 |
3 files changed, 30 insertions, 11 deletions
@@ -84,7 +84,7 @@ class PyJWT(object): # Header header = {'typ': 'JWT', 'alg': algorithm} - + if headers: header.update(headers) diff --git a/tests/test_algorithms.py b/tests/test_algorithms.py index 8eb0eb3..5eb24bc 100644 --- a/tests/test_algorithms.py +++ b/tests/test_algorithms.py @@ -113,9 +113,9 @@ class TestAlgorithms(unittest.TestCase): def test_rsa_verify_should_return_false_if_signature_invalid(self): algo = RSAAlgorithm(RSAAlgorithm.SHA256) - jwt_message = ensure_bytes('Hello World!') + message = ensure_bytes('Hello World!') - jwt_sig = base64.b64decode(ensure_bytes( + sig = base64.b64decode(ensure_bytes( 'yS6zk9DBkuGTtcBzLUzSpo9gGJxJFOGvUqN01iLhWHrzBQ9ZEz3+Ae38AXp' '10RWwscp42ySC85Z6zoN67yGkLNWnfmCZSEv+xqELGEvBJvciOKsrhiObUl' '2mveSc1oeO/2ujkGDkkkJ2epn0YliacVjZF5+/uDmImUfAAj8lzjnHlzYix' @@ -123,21 +123,21 @@ class TestAlgorithms(unittest.TestCase): 'fHJnNUzAEUOXS0WahHVb57D30pcgIji9z923q90p5c7E2cU8V+E1qe8NdCA' 'APCDzZZ9zQ/dgcMVaBrGrgimrcLbPjueOKFgSO+SSjIElKA==')) - jwt_sig += ensure_bytes('123') # Signature is now invalid + sig += ensure_bytes('123') # Signature is now invalid with open(key_path('testkey_rsa.pub'), 'r') as keyfile: - jwt_pub_key = algo.prepare_key(keyfile.read()) + pub_key = algo.prepare_key(keyfile.read()) - result = algo.verify(jwt_message, jwt_pub_key, jwt_sig) + result = algo.verify(message, pub_key, sig) self.assertFalse(result) @unittest.skipIf(not has_crypto, 'Not supported without cryptography library') def test_rsa_verify_should_return_true_if_signature_valid(self): algo = RSAAlgorithm(RSAAlgorithm.SHA256) - jwt_message = ensure_bytes('Hello World!') + message = ensure_bytes('Hello World!') - jwt_sig = base64.b64decode(ensure_bytes( + sig = base64.b64decode(ensure_bytes( 'yS6zk9DBkuGTtcBzLUzSpo9gGJxJFOGvUqN01iLhWHrzBQ9ZEz3+Ae38AXp' '10RWwscp42ySC85Z6zoN67yGkLNWnfmCZSEv+xqELGEvBJvciOKsrhiObUl' '2mveSc1oeO/2ujkGDkkkJ2epn0YliacVjZF5+/uDmImUfAAj8lzjnHlzYix' @@ -146,9 +146,9 @@ class TestAlgorithms(unittest.TestCase): 'APCDzZZ9zQ/dgcMVaBrGrgimrcLbPjueOKFgSO+SSjIElKA==')) with open(key_path('testkey_rsa.pub'), 'r') as keyfile: - jwt_pub_key = algo.prepare_key(keyfile.read()) + pub_key = algo.prepare_key(keyfile.read()) - result = algo.verify(jwt_message, jwt_pub_key, jwt_sig) + result = algo.verify(message, pub_key, sig) self.assertTrue(result) @unittest.skipIf(not has_crypto, 'Not supported without cryptography library') diff --git a/tests/test_api.py b/tests/test_api.py index 0afb8bd..4d5f415 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -13,8 +13,9 @@ from jwt.exceptions import ( InvalidAlgorithmError, InvalidAudienceError, InvalidIssuedAtError, InvalidIssuerError ) +from jwt.utils import base64url_decode -from .compat import text_type, unittest +from .compat import string_types, text_type, unittest from .utils import ensure_bytes try: @@ -856,6 +857,24 @@ class TestAPI(unittest.TestCase): payload = self.jwt.decode(token, 'secret') self.assertEqual(payload, {'some_decimal': 'it worked'}) + def test_encode_headers_parameter_adds_headers(self): + headers = {'testheader': True} + token = self.jwt.encode({'msg': 'hello world'}, 'secret', headers=headers) + + if not isinstance(token, string_types): + token = token.decode() + + header = token[0:token.index('.')].encode() + header = base64url_decode(header) + + if not isinstance(header, text_type): + header = header.decode() + + header_obj = json.loads(header) + + self.assertIn('testheader', header_obj) + self.assertEqual(header_obj['testheader'], headers['testheader']) + if __name__ == '__main__': unittest.main() |