def test_from_to_payload_with_string_audience(self): payload = { 'iss': 'Issuer', 'aud': 'bob', } token = jwt.raw_jwt_from_json_payload(json.dumps(payload)) expected = { 'iss': 'Issuer', 'aud': ['bob'], } self.assertEqual(json.loads(token.json_payload()), expected)
def test_from_payload_with_invalid_utf16(self): # the json string contains "\uD834", which gets decoded by the json decoder # into an invalid UTF16 character. with self.assertRaises(jwt.JwtInvalidError): jwt.raw_jwt_from_json_payload(u'{"iss":"\\uD834"}') with self.assertRaises(jwt.JwtInvalidError): jwt.raw_jwt_from_json_payload(u'{"\\uD834":"issuer"}') with self.assertRaises(jwt.JwtInvalidError): jwt.raw_jwt_from_json_payload(u'{"a":{"a":{"a":"\\uD834"}}}')
def test_from_to_payload(self): payload = { 'iss': 'Issuer', 'sub': 'Subject', 'jti': 'JWT ID', 'aud': ['bob', 'eve'], 'iat': ISSUED_AT_TIMESTAMP, 'nbf': NOT_BEFORE_TIMESTAMP, 'exp': EXPIRATION_TIMESTAMP, 'account_no': 1234, 'amount': 1.5, 'name': 'Peter', 'null': None, 'array': [1, None, 'Bob', 2.2, { 'foo': 'bar' }], 'object': { 'one': { 'two': 3 } } } token = jwt.raw_jwt_from_json_payload(json.dumps(payload)) self.assertEqual(json.loads(token.json_payload()), payload)
def test_from_payload_with_utf16_surrogate(self): # the json string contains "\uD834\uDD1E", which the JSON decoder decodes to # the G clef character (U+1D11E). token = jwt.raw_jwt_from_json_payload(u'{"iss":"\\uD834\\uDD1E"}') self.assertEqual(token.issuer(), u'\U0001d11e')
def test_from_payload_with_infinity_expiration_fails(self): with self.assertRaises(jwt.JwtInvalidError): jwt.raw_jwt_from_json_payload('{"exp":Infinity}')
def test_from_payload_with_negative_expiration_fails(self): with self.assertRaises(jwt.JwtInvalidError): jwt.raw_jwt_from_json_payload('{"exp":-1}')
def test_from_payload_with_exp_expiration_success(self): token = jwt.raw_jwt_from_json_payload('{"exp":1e10}') self.assertEqual( token.expiration(), datetime.datetime.fromtimestamp(10000000000, datetime.timezone.utc))
def test_from_payload_with_wrong_not_before_fails(self): with self.assertRaises(jwt.JwtInvalidError): jwt.raw_jwt_from_json_payload('{"nbf":"123"}')
def test_from_payload_with_wrong_issued_at_fails(self): with self.assertRaises(jwt.JwtInvalidError): jwt.raw_jwt_from_json_payload('{"iat":"123"}')
def test_from_payload_with_wrong_jwt_id_fails(self): with self.assertRaises(jwt.JwtInvalidError): jwt.raw_jwt_from_json_payload('{"jti":123}')
def test_from_to_payload_with_wrong_expiration_fails(self): with self.assertRaises(jwt.JwtInvalidError): jwt.raw_jwt_from_json_payload('{"exp":"123"}')
def test_from_to_payload_with_wrong_subject_fails(self): with self.assertRaises(jwt.JwtInvalidError): jwt.raw_jwt_from_json_payload('{"sub":123}')