From c44f8c39c1ab6db474500d39a3c0a79519e97952 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: Fri, 18 Oct 2019 13:05:42 +0300 Subject: [PATCH] Fix tests news --- apps/news/tests.py | 44 +++++++++++++++++++++++++++------------ apps/utils/permissions.py | 5 ++--- 2 files changed, 33 insertions(+), 16 deletions(-) diff --git a/apps/news/tests.py b/apps/news/tests.py index 27ede62c..dd256bac 100644 --- a/apps/news/tests.py +++ b/apps/news/tests.py @@ -6,7 +6,7 @@ from rest_framework import status from datetime import datetime, timedelta from news.models import NewsType, News -from account.models import User +from account.models import User, Role, UserRole from translation.models import Language from location.models import Country # Create your tests here. @@ -24,11 +24,7 @@ class BaseTestCase(APITestCase): self.client.cookies = SimpleCookie({'access_token': tokkens.get('access_token'), 'refresh_token': tokkens.get('refresh_token')}) self.test_news_type = NewsType.objects.create(name="Test news type") - self.test_news = News.objects.create(created_by=self.user, modified_by=self.user, title={"en-GB": "Test news"}, - news_type=self.test_news_type, description={"en-GB": "Description test news"}, - playlist=1, start=datetime.now() + timedelta(hours=-2), - end=datetime.now() + timedelta(hours=2), - state=News.PUBLISHED, slug='test-news-slug',) + self.lang = Language.objects.create( title='Russia', locale='ru-RU' @@ -44,16 +40,41 @@ class BaseTestCase(APITestCase): self.country_ru.languages.add(self.lang) self.country_ru.save() -class NewsTestCase(BaseTestCase): + role = Role.objects.create( + role=Role.CONTENT_PAGE_MANAGER, + country=self.country_ru + ) + role.save() - def test_news_list(self): + user_role = UserRole.objects.create( + user=self.user, + role=role + ) + user_role.save() + + self.test_news = News.objects.create(created_by=self.user, modified_by=self.user, + title={"en-GB": "Test news"}, + news_type=self.test_news_type, + description={"en-GB": "Description test news"}, + playlist=1, start=datetime.now() + timedelta(hours=-2), + end=datetime.now() + timedelta(hours=2), + state=News.PUBLISHED, slug='test-news-slug', + country=self.country_ru) + +class NewsTestCase(BaseTestCase): + def setUp(self): + super().setUp() + + def test_web_news(self): response = self.client.get("/api/web/news/") self.assertEqual(response.status_code, status.HTTP_200_OK) - def test_news_web_detail(self): response = self.client.get(f"/api/web/news/slug/{self.test_news.slug}/") self.assertEqual(response.status_code, status.HTTP_200_OK) + response = self.client.get("/api/web/news/types/") + self.assertEqual(response.status_code, status.HTTP_200_OK) + def test_news_back_detail(self): response = self.client.get(f"/api/back/news/{self.test_news.id}/") self.assertEqual(response.status_code, status.HTTP_200_OK) @@ -62,10 +83,6 @@ class NewsTestCase(BaseTestCase): response = self.client.get("/api/back/news/") self.assertEqual(response.status_code, status.HTTP_200_OK) - def test_news_type_list(self): - response = self.client.get("/api/web/news/types/") - self.assertEqual(response.status_code, status.HTTP_200_OK) - def test_news_back_detail_put(self): # retrieve-update-destroy url = reverse('back:news:retrieve-update-destroy', kwargs={'pk': self.test_news.id}) @@ -78,5 +95,6 @@ class NewsTestCase(BaseTestCase): 'news_type_id':self.test_news.news_type_id, 'country_id': self.country_ru.id } + response = self.client.put(url, data=data, format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) \ No newline at end of file diff --git a/apps/utils/permissions.py b/apps/utils/permissions.py index 17179483..45d978a0 100644 --- a/apps/utils/permissions.py +++ b/apps/utils/permissions.py @@ -100,8 +100,8 @@ class IsContentPageManager(IsStandardUser): .first() # 'Comments moderator' rules = [ - UserRole.objects.filter(user=request.user, role=role).exists() and - obj.user != request.user, + UserRole.objects.filter(user=request.user, role=role).exists(), + # and obj.user != request.user, super().has_object_permission(request, view, obj) ] return any(rules) @@ -119,7 +119,6 @@ class IsCountryAdmin(IsStandardUser): .first() # 'Comments moderator' rules = [ - # obj.user != request.user and UserRole.objects.filter(user=request.user, role=role).exists(), super().has_object_permission(request, view, obj), ]