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 account.serializers.common import UserSerializer from comment.models import Comment import json 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() self.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=self.content_type.id, country=self.country_ru ) self.comment.save() self.url = reverse('back:comment:comment-crud', kwargs={"id": self.comment.id}) def test_post(self): self.url = reverse('back:comment:comment-list-create') comment = { "text": "Test comment POST", "user_id": self.user_test["user"].id, "object_id": self.country_ru.pk, "content_type_id": self.content_type.id, "country_id": self.country_ru.id } # # response = self.client.post(self.url, format='json', data=comment) # self.assertEqual(response.status_code, status.HTTP_401_UNAUTHORIZED) json_user = json.dumps(self.moderator) user = UserSerializer(data=self.moderator) user.is_valid() u_data = user.data self.assertFalse(user.is_valid()) # comment = { # "text": "Test comment POST moder", # "user": user, # "object_id": self.country_ru.pk, # "content_type_id": self.content_type.id, # "country_id": self.country_ru.id # } # # # tokens = User.create_jwt_tokens(self.moderator) # self.client.cookies = SimpleCookie( # {'access_token': tokens.get('access_token'), # 'refresh_token': tokens.get('access_token')}) # # response = self.client.post(self.url, format='json', data=comment) # self.assertEqual(response.status_code, status.HTTP_201_CREATED) # self.assertTrue(True) def test_put_moderator(self): tokens = User.create_jwt_tokens(self.moderator) 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": self.moderator.id } 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_401_UNAUTHORIZED) 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)