Skip to content
This repository was archived by the owner on May 26, 2020. It is now read-only.

Commit fa1fd77

Browse files
committed
Unit tests
1 parent 0469ac1 commit fa1fd77

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed

tests/test_utils.py

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33

44
from django.contrib.auth import get_user_model
55
from django.test import TestCase
6+
import jwt.exceptions
67
from rest_framework_jwt import utils
8+
from rest_framework_jwt.settings import api_settings, DEFAULTS
79

810
User = get_user_model()
911

@@ -54,3 +56,69 @@ def test_jwt_response_payload(self):
5456
response_data = utils.jwt_response_payload_handler(token, self.user)
5557

5658
self.assertEqual(response_data, dict(token=token))
59+
60+
class TestAudience(TestCase):
61+
def setUp(self):
62+
api_settings.JWT_AUDIENCE = "my_aud"
63+
64+
self.username = 'jpueblo'
65+
self.email = 'jpueblo@example.com'
66+
self.user = User.objects.create_user(self.username, self.email)
67+
68+
return super(TestAudience, self).setUp()
69+
70+
def test_fail_audience_missing(self):
71+
payload = utils.jwt_payload_handler(self.user)
72+
token = utils.jwt_encode_handler(payload)
73+
with self.assertRaises(jwt.exceptions.InvalidAudienceError):
74+
utils.jwt_decode_handler(token)
75+
76+
def test_fail_audience_wrong(self):
77+
payload = utils.jwt_payload_handler(self.user)
78+
payload['aud'] = "my_aud2"
79+
token = utils.jwt_encode_handler(payload)
80+
with self.assertRaises(jwt.exceptions.InvalidAudienceError):
81+
utils.jwt_decode_handler(token)
82+
83+
def test_correct_audience(self):
84+
payload = utils.jwt_payload_handler(self.user)
85+
payload['aud'] = "my_aud"
86+
token = utils.jwt_encode_handler(payload)
87+
decoded_payload = utils.jwt_decode_handler(token)
88+
self.assertEqual(decoded_payload, payload)
89+
90+
def tearDown(self):
91+
api_settings.JWT_AUDIENCE = DEFAULTS['JWT_AUDIENCE']
92+
93+
class TestIssuer(TestCase):
94+
def setUp(self):
95+
api_settings.JWT_ISSUER = "example.com"
96+
97+
self.username = 'jpueblo'
98+
self.email = 'jpueblo@example.com'
99+
self.user = User.objects.create_user(self.username, self.email)
100+
101+
return super(TestIssuer, self).setUp()
102+
103+
def test_fail_issuer_missing(self):
104+
payload = utils.jwt_payload_handler(self.user)
105+
token = utils.jwt_encode_handler(payload)
106+
with self.assertRaises(jwt.exceptions.InvalidIssuerError):
107+
utils.jwt_decode_handler(token)
108+
109+
def test_fail_issuer_wrong(self):
110+
payload = utils.jwt_payload_handler(self.user)
111+
token = utils.jwt_encode_handler(payload)
112+
payload['iss'] = "example2.com"
113+
with self.assertRaises(jwt.exceptions.InvalidIssuerError):
114+
utils.jwt_decode_handler(token)
115+
116+
def test_correct_issuer(self):
117+
payload = utils.jwt_payload_handler(self.user)
118+
payload['iss'] = "example.com"
119+
token = utils.jwt_encode_handler(payload)
120+
decoded_payload = utils.jwt_decode_handler(token)
121+
self.assertEqual(decoded_payload, payload)
122+
123+
def tearDown(self):
124+
api_settings.JWT_ISSUER = DEFAULTS['JWT_ISSUER']

0 commit comments

Comments
 (0)