Example #1
0
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)
Example #3
0
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)
Example #4
0
 def setUp(self):
     super(TestJSONWebTokenAuthentication, self).setUp()
     self.auth = JSONWebTokenAuthentication()
     self.factory = RequestFactory()
     self.user = UserProfile.objects.get(email='*****@*****.**')