From bebdf1e269ac45a690be942cc832a0bd6541e5d0 Mon Sep 17 00:00:00 2001 From: alex Date: Thu, 21 Nov 2019 11:12:52 +0300 Subject: [PATCH] review test and fixes review crud api --- apps/review/serializers/common.py | 4 ++- apps/review/tests.py | 44 +++++++++++++++++++++++++++++++ apps/review/views/back.py | 2 +- 3 files changed, 48 insertions(+), 2 deletions(-) diff --git a/apps/review/serializers/common.py b/apps/review/serializers/common.py index 2889db6e..da7b624b 100644 --- a/apps/review/serializers/common.py +++ b/apps/review/serializers/common.py @@ -14,7 +14,9 @@ class ReviewBaseSerializer(serializers.ModelSerializer): 'child', 'published_at', 'vintage', - 'country' + 'country', + 'content_type', + 'object_id', ) diff --git a/apps/review/tests.py b/apps/review/tests.py index e04f5281..eebc1e86 100644 --- a/apps/review/tests.py +++ b/apps/review/tests.py @@ -19,6 +19,7 @@ class BaseTestCase(APITestCase): username=self.username, email=self.email, password=self.password, + is_staff=True, ) tokens = User.create_jwt_tokens(self.user) @@ -61,6 +62,49 @@ class BaseTestCase(APITestCase): ) +class ReviewTestCase(BaseTestCase): + def setUp(self): + super().setUp() + + def test_review_list(self): + response = self.client.get('/api/back/review/') + self.assertEqual(response.status_code, status.HTTP_200_OK) + + def test_review_post(self): + test_review = { + 'reviewer': self.user.id, + 'status': Review.READY, + 'vintage': 2019, + 'country': self.country_ru.id, + 'object_id': 1, + 'content_type': 1, + } + response = self.client.post('/api/back/review/', data=test_review) + self.assertEqual(response.status_code, status.HTTP_201_CREATED) + + def test_review_detail(self): + response = self.client.get(f'/api/back/review/{self.test_review.id}/', format='json') + self.assertEqual(response.status_code, status.HTTP_200_OK) + + def test_review_detail_put(self): + data = { + 'id': self.test_review.id, + 'vintage': 2018, + 'reviewer': self.user.id, + 'status': Review.READY, + 'country': self.country_ru.id, + 'object_id': 1, + 'content_type': 1, + } + + response = self.client.put(f'/api/back/review/{self.test_review.id}/', data=data, format='json') + self.assertEqual(response.status_code, status.HTTP_200_OK) + + def test_review_delete(self): + response = self.client.delete(f'/api/back/review/{self.test_review.id}/') + self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + + class InquiriesTestCase(BaseTestCase): def setUp(self): super().setUp() diff --git a/apps/review/views/back.py b/apps/review/views/back.py index c5d89e11..27f9af0d 100644 --- a/apps/review/views/back.py +++ b/apps/review/views/back.py @@ -18,7 +18,7 @@ class ReviewRUDView(generics.RetrieveUpdateDestroyAPIView): """Comment RUD view.""" serializer_class = serializers.ReviewBaseSerializer queryset = models.Review.objects.all() - permission_classes = [IsReviewerManager | IsRestaurantReviewer] + permission_classes = [permissions.IsAdminUser | IsReviewerManager | IsRestaurantReviewer] lookup_field = 'id'