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))
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
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()
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))
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) )
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) )
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) )
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) )
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)
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)
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)