From 322cfcd89d21570f2982bf0f83c5692cd5c50ba7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B8=D0=BA=D1=82=D0=BE=D1=80=20=D0=93=D0=BB=D0=B0?= =?UTF-8?q?=D0=B4=D0=BA=D0=B8=D1=85?= Date: Tue, 15 Oct 2019 15:33:28 +0300 Subject: [PATCH] Fix test --- apps/comment/tests.py | 85 ++++++++++++++++++++++++++- apps/utils/permissions.py | 15 ----- apps/utils/tests/tests_permissions.py | 79 ------------------------- 3 files changed, 82 insertions(+), 97 deletions(-) diff --git a/apps/comment/tests.py b/apps/comment/tests.py index 6c6c3d6a..8cbcee88 100644 --- a/apps/comment/tests.py +++ b/apps/comment/tests.py @@ -1,13 +1,46 @@ -from rest_framework import status -from http.cookies import SimpleCookie -from account.models import User from utils.tests.tests_permissions import BasePermissionTests +from rest_framework import status +from authorization.tests.tests_authorization import get_tokens_for_user +from django.urls import reverse +from django.contrib.contenttypes.models import ContentType +from http.cookies import SimpleCookie +from account.models import Role, User, UserRole +from comment.models import Comment class CommentModeratorPermissionTests(BasePermissionTests): def setUp(self): super().setUp() + self.role = Role.objects.create( + role=2, + country=self.country_ru + ) + self.role.save() + + self.moderator = User.objects.create_user(username='moderator', + email='moderator@mail.com', + password='passwordmoderator') + + self.userRole = UserRole.objects.create( + user=self.moderator, + role=self.role + ) + self.userRole.save() + + content_type = ContentType.objects.get(app_label='location', model='country') + + self.user_test = get_tokens_for_user() + self.comment = Comment.objects.create(text='Test comment', mark=1, + user=self.user_test["user"], + object_id= self.country_ru.pk, + content_type_id=content_type.id, + country=self.country_ru + ) + self.comment.save() + self.url = reverse('back:comment:comment-crud', kwargs={"id": self.comment.id}) + + def test_put_moderator(self): tokens = User.create_jwt_tokens(self.moderator) self.client.cookies = SimpleCookie( @@ -24,5 +57,51 @@ class CommentModeratorPermissionTests(BasePermissionTests): response = self.client.put(self.url, data=data, format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) + def test_get(self): + response = self.client.get(self.url, format='json') + self.assertEqual(response.status_code, status.HTTP_200_OK) + + def test_put_other_user(self): + other_user = User.objects.create_user(username='test', + email='test@mail.com', + password='passwordtest') + + tokens = User.create_jwt_tokens(other_user) + + self.client.cookies = SimpleCookie( + {'access_token': tokens.get('access_token'), + 'refresh_token': tokens.get('access_token')}) + + data = { + "id": self.comment.id, + "text": "test text moderator", + "mark": 1, + "user": other_user.id + } + + response = self.client.put(self.url, data=data, format='json') + self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) + + def test_put_super_user(self): + super_user = User.objects.create_user(username='super', + email='super@mail.com', + password='passwordtestsuper', + is_superuser=True) + + tokens = User.create_jwt_tokens(super_user) + + self.client.cookies = SimpleCookie( + {'access_token': tokens.get('access_token'), + 'refresh_token': tokens.get('access_token')}) + + data = { + "id": self.comment.id, + "text": "test text moderator", + "mark": 1, + "user": super_user.id + } + + response = self.client.put(self.url, data=data, format='json') + self.assertEqual(response.status_code, status.HTTP_200_OK) diff --git a/apps/utils/permissions.py b/apps/utils/permissions.py index dec3b848..2754a3c5 100644 --- a/apps/utils/permissions.py +++ b/apps/utils/permissions.py @@ -116,18 +116,3 @@ class IsCommentModerator(IsCountryAdmin): return True return False - - -class IsCountryAdmin(IsGuest): - - def has_object_permission(self, request, view, obj): - # Read permissions are allowed to any request. - - # Must have role - role = Role.objects.filter(role=Role.COUNTRY_ADMIN, country_id=obj.country_id).first() # 'Country admin' - is_access = UserRole.objects.filter(user=request.user, role=role).exists() - - if super().has_object_permission(request, view, obj) and is_access: - return True - - return False diff --git a/apps/utils/tests/tests_permissions.py b/apps/utils/tests/tests_permissions.py index f68f71d6..ccb202ab 100644 --- a/apps/utils/tests/tests_permissions.py +++ b/apps/utils/tests/tests_permissions.py @@ -1,12 +1,5 @@ from rest_framework.test import APITestCase -from rest_framework import status -from authorization.tests.tests_authorization import get_tokens_for_user -from django.urls import reverse -from django.contrib.contenttypes.models import ContentType -from http.cookies import SimpleCookie from location.models import Country -from account.models import Role, User, UserRole -from comment.models import Comment from translation.models import Language @@ -28,77 +21,5 @@ class BasePermissionTests(APITestCase): self.country_ru.languages.add(self.lang) self.country_ru.save() - self.role = Role.objects.create( - role=2, - country=self.country_ru - ) - self.role.save() - self.moderator = User.objects.create_user(username='moderator', - email='moderator@mail.com', - password='passwordmoderator') - self.userRole = UserRole.objects.create( - user=self.moderator, - role=self.role - ) - self.userRole.save() - - content_type = ContentType.objects.get(app_label='location', model='country') - - self.user_test = get_tokens_for_user() - self.comment = Comment.objects.create(text='Test comment', mark=1, - user=self.user_test["user"], - object_id= self.country_ru.pk, - content_type_id=content_type.id, - country=self.country_ru - ) - self.comment.save() - self.url = reverse('back:comment:comment-crud', kwargs={"id": self.comment.id}) - - def test_get(self): - response = self.client.get(self.url, format='json') - self.assertEqual(response.status_code, status.HTTP_200_OK) - - def test_put_other_user(self): - other_user = User.objects.create_user(username='test', - email='test@mail.com', - password='passwordtest') - - tokens = User.create_jwt_tokens(other_user) - - self.client.cookies = SimpleCookie( - {'access_token': tokens.get('access_token'), - 'refresh_token': tokens.get('access_token')}) - - data = { - "id": self.comment.id, - "text": "test text moderator", - "mark": 1, - "user": other_user.id - } - - response = self.client.put(self.url, data=data, format='json') - self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) - - def test_put_super_user(self): - super_user = User.objects.create_user(username='super', - email='super@mail.com', - password='passwordtestsuper', - is_superuser=True) - - tokens = User.create_jwt_tokens(super_user) - - self.client.cookies = SimpleCookie( - {'access_token': tokens.get('access_token'), - 'refresh_token': tokens.get('access_token')}) - - data = { - "id": self.comment.id, - "text": "test text moderator", - "mark": 1, - "user": super_user.id - } - - response = self.client.put(self.url, data=data, format='json') - self.assertEqual(response.status_code, status.HTTP_200_OK)