Пример #1
0
    def test_successful_sign_up(self):
        r = self.client.sign_up(self.data)
        self.assertEqual(r.status_code, status.HTTP_201_CREATED,
                         prettify_response('Sign up failed', r))

        r = self.client.sign_in(self.data['username'])
        self.assertEqual(r.status_code, status.HTTP_400_BAD_REQUEST,
                         prettify_response('Sign in failed', r))
Пример #2
0
    def test_successful_sign_in(self):
        r = self.client.sign_in(self.user.username)
        self.assertEqual(r.status_code, status.HTTP_200_OK,
                         prettify_response('Sign in failed', r))
        self.assertIn('token', r.data,
                      prettify_response('Token should be in the response', r))

        token = r.data['token']
        r = self.client.authenticate(token)
        self.assertEqual(r.status_code, status.HTTP_200_OK,
                         prettify_response('Authentication failed', r))
        return token
Пример #3
0
    def check_permission(self, perm, url, method):
        user = UserFactory()
        self.client.force_authenticate(user)
        r = getattr(self.client, method)(url)
        self.assertEqual(r.status_code, status.HTTP_403_FORBIDDEN,
                         prettify_response('Request should be forbidden', r))
        user.delete()

        user_with_perm = UserFactory(permissions=[perm])
        self.client.force_authenticate(user_with_perm)
        r = getattr(self.client, method)(url)
        self.assertTrue(status.is_success(r.status_code),
                        prettify_response('Request should be successful', r))
        user_with_perm.delete()
Пример #4
0
    def test_successful_sign_out(self):
        r = self.client.sign_in(self.user.username)
        self.assertEqual(r.status_code, status.HTTP_200_OK,
                         prettify_response('Sign in failed', r))

        token = r.data.get('token')
        r = self.client.sign_out(token)
        self.assertEqual(r.status_code, status.HTTP_204_NO_CONTENT,
                         prettify_response('Sign out failed', r))

        r = self.client.authenticate(token)
        self.assertEqual(
            r.status_code, status.HTTP_403_FORBIDDEN,
            prettify_response('Authentication should be failed', r))
Пример #5
0
 def test_sign_in_by_inactive_user(self):
     r = self.client.sign_in(self.inactive_user.username)
     self.assertEqual(
         r.status_code,
         status.HTTP_400_BAD_REQUEST,
         prettify_response('Sign in should be failed', r)
     )
Пример #6
0
 def test_sign_in_with_incorrect_credentials(self):
     r = self.client.sign_in('incorrect_username', 'incorrect_password')
     self.assertEqual(
         r.status_code,
         status.HTTP_400_BAD_REQUEST,
         prettify_response('Sign in should be failed', r)
     )
Пример #7
0
 def test_sign_out_with_incorrect_token(self):
     r = self.client.sign_out('incorrect_token')
     self.assertEqual(
         r.status_code,
         status.HTTP_403_FORBIDDEN,
         prettify_response('Sign out should be failed', r)
     )
Пример #8
0
 def test_sign_up_without_email(self):
     data = {}
     r = self.client.sign_up(data)
     self.assertEqual(
         r.status_code,
         status.HTTP_400_BAD_REQUEST,
         prettify_response('Sign up should be failed', r)
     )
Пример #9
0
    def test_list_endpoint(self):
        url = reverse(self.base_name + self.list_suffix)
        self.client.force_authenticate(self.user)
        if self.check_view_perm:
            self.check_permission(self.get_permission('view'), url, 'get')

        r = self.client.get(url)
        self.assertTrue(status.is_success(r.status_code),
                        prettify_response('Request should be successful', r))
        self.compare_objects(self.model_cls.objects.all(), r.data)
Пример #10
0
    def test_list_endpoint(self):
        url = reverse(self.base_name + self.list_suffix)
        self.client.force_authenticate(self.user)

        r = self.client.get(url)
        self.assertTrue(
            status.is_success(r.status_code),
            prettify_response('Request should be successful', r)
        )
        self.compare_objects(self.model_cls.objects.filter(is_superuser=False), r.data)
Пример #11
0
    def test_retrieve_endpoint(self):
        lookup = getattr(self.object, self.lookup_field)
        url = reverse(self.base_name + self.detail_suffix, args=(lookup, ))
        self.client.force_authenticate(self.user)
        if self.check_view_perm:
            self.check_permission(self.get_permission('view'), url, 'get')

        r = self.client.get(url)
        self.assertTrue(status.is_success(r.status_code),
                        prettify_response('Request should be successful', r))
        self.compare_object(self.object, r.data)