class TestJSONWebTokenAuthentication(TestCase): fixtures = ['base/addon_3615'] def setUp(self): super(TestJSONWebTokenAuthentication, self).setUp() self.auth = JSONWebTokenAuthentication() self.factory = RequestFactory() self.user = UserProfile.objects.get(email='*****@*****.**') def _authenticate(self, token): url = absolutify('/api/whatever') prefix = api_settings.JWT_AUTH_HEADER_PREFIX request = self.factory.post( url, HTTP_HOST='testserver', HTTP_AUTHORIZATION='{0} {1}'.format(prefix, token)) return self.auth.authenticate(request) def test_success(self): token = self.client.generate_api_token(self.user) user, _ = self._authenticate(token) assert user == self.user def test_verify(self): token = self.client.generate_api_token(self.user) verify_token_url = reverse('frontend-token-verify') response = self.client.post(verify_token_url, data={'token': token}) assert response.status_code == 200 data = json.loads(response.content) assert data['token'] == token
class TestJSONWebTokenAuthentication(TestCase): fixtures = ['base/addon_3615'] client_class = APITestClient def setUp(self): super(TestJSONWebTokenAuthentication, self).setUp() self.auth = JSONWebTokenAuthentication() self.factory = RequestFactory() self.user = UserProfile.objects.get(email='*****@*****.**') def _authenticate(self, token): url = absolutify('/api/whatever') prefix = api_settings.JWT_AUTH_HEADER_PREFIX request = self.factory.post(url, HTTP_HOST='testserver', HTTP_AUTHORIZATION='{0} {1}'.format( prefix, token)) return self.auth.authenticate(request) def test_success(self): token = self.client.generate_api_token(self.user) user, _ = self._authenticate(token) assert user == self.user def test_verify(self): token = self.client.generate_api_token(self.user) verify_token_url = reverse('frontend-token-verify') response = self.client.post(verify_token_url, data={'token': token}) assert response.status_code == 200 data = json.loads(response.content) assert data['token'] == token def test_no_user_id(self): token = self.client.generate_api_token(self.user, user_id=None) with self.assertRaises(AuthenticationFailed): self._authenticate(token) def test_user_deleted(self): self.user.anonymize() token = self.client.generate_api_token(self.user) with self.assertRaises(AuthenticationFailed): self._authenticate(token) def test_username_changes(self): token = self.client.generate_api_token(self.user) self.user.update(username='******') user, _ = self._authenticate(token) assert user == self.user def test_invalid_user_not_found(self): token = self.client.generate_api_token(self.user, user_id=-1) with self.assertRaises(AuthenticationFailed): self._authenticate(token)
class TestJSONWebTokenAuthentication(TestCase): fixtures = ["base/addon_3615"] client_class = APITestClient def setUp(self): super(TestJSONWebTokenAuthentication, self).setUp() self.auth = JSONWebTokenAuthentication() self.factory = RequestFactory() self.user = UserProfile.objects.get(email="*****@*****.**") def _authenticate(self, token): url = absolutify("/api/whatever") prefix = api_settings.JWT_AUTH_HEADER_PREFIX request = self.factory.post(url, HTTP_HOST="testserver", HTTP_AUTHORIZATION="{0} {1}".format(prefix, token)) return self.auth.authenticate(request) def test_success(self): token = self.client.generate_api_token(self.user) user, _ = self._authenticate(token) assert user == self.user def test_verify(self): token = self.client.generate_api_token(self.user) verify_token_url = reverse("frontend-token-verify") response = self.client.post(verify_token_url, data={"token": token}) assert response.status_code == 200 data = json.loads(response.content) assert data["token"] == token def test_no_user_id(self): token = self.client.generate_api_token(self.user, user_id=None) with self.assertRaises(AuthenticationFailed): self._authenticate(token) def test_user_deleted(self): self.user.anonymize() token = self.client.generate_api_token(self.user) with self.assertRaises(AuthenticationFailed): self._authenticate(token) def test_username_changes(self): token = self.client.generate_api_token(self.user) self.user.update(username="******") user, _ = self._authenticate(token) assert user == self.user def test_invalid_user_not_found(self): token = self.client.generate_api_token(self.user, user_id=-1) with self.assertRaises(AuthenticationFailed): self._authenticate(token)