From 9626a946b13b2a454a6135550c2a6a3dd378326d Mon Sep 17 00:00:00 2001 From: alex Date: Wed, 13 Nov 2019 12:29:25 +0300 Subject: [PATCH] inquiries test --- apps/review/serializers/common.py | 2 + apps/review/tests.py | 136 +++++++++++++++++++++++++++++- 2 files changed, 136 insertions(+), 2 deletions(-) diff --git a/apps/review/serializers/common.py b/apps/review/serializers/common.py index 74ed6924..e79424f5 100644 --- a/apps/review/serializers/common.py +++ b/apps/review/serializers/common.py @@ -31,6 +31,7 @@ class ReviewShortSerializer(ReviewBaseSerializer): class InquiriesBaseSerializer(serializers.ModelSerializer): + """Serializer for model Inquiries.""" class Meta: model = Inquiries fields = ( @@ -53,6 +54,7 @@ class InquiriesBaseSerializer(serializers.ModelSerializer): class GridItemsBaseSerializer(serializers.ModelSerializer): + """Serializer for model GridItems.""" class Meta: model = GridItems fields = ( diff --git a/apps/review/tests.py b/apps/review/tests.py index 7ce503c2..2dc6d86e 100644 --- a/apps/review/tests.py +++ b/apps/review/tests.py @@ -1,3 +1,135 @@ -from django.test import TestCase +from http.cookies import SimpleCookie -# Create your tests here. +from django.urls import reverse +from rest_framework import status +from rest_framework.test import APITestCase + +from account.models import User +from location.models import Country +from review.models import Review, Inquiries, GridItems +from translation.models import Language + + +class BaseTestCase(APITestCase): + + def setUp(self): + self.username = 'test_user' + self.password = 'test_user_password' + self.email = 'test_user@mail.com' + self.user = User.objects.create_user( + username=self.username, + email=self.email, + password=self.password, + ) + + tokens = User.create_jwt_tokens(self.user) + self.client.cookies = SimpleCookie({ + 'access_token': tokens.get('access_token'), + 'refresh_token': tokens.get('refresh_token'), + }) + + self.lang = Language.objects.create( + title='Russia', + locale='ru-RU' + ) + + self.country_ru = Country.objects.create( + name={'en-GB': 'Russian'}, + code='RU', + ) + + self.test_review = Review.objects.create( + reviewer=self.user, + status=Review.READY, + language=self.lang, + vintage=2020, + country=self.country_ru, + text={'en-GB': 'Text review'}, + created_by=self.user, + modified_by=self.user, + object_id=1, + content_type_id=1, + ) + + self.test_inquiry = Inquiries.objects.create( + review=self.test_review, + author=self.user, + comment='Test comment', + ) + + self.test_grid = GridItems.objects.create( + inquiry=self.test_inquiry, + name='Test name', + ) + + +class InquiriesTestCase(BaseTestCase): + def setUp(self): + super().setUp() + + def test_inquiry_list(self): + response = self.client.get('/api/back/review/inquiries/') + self.assertEqual(response.status_code, status.HTTP_200_OK) + + def test_inquiry_list_by_review_id(self): + response = self.client.get(f'/api/back/review/{self.test_review.id}/inquiries/') + self.assertEqual(response.status_code, status.HTTP_200_OK) + + def test_inquiry_post(self): + test_inquiry = { + 'review': self.test_review.pk, + 'author': self.user.pk, + 'comment': 'New test comment', + } + response = self.client.post('/api/back/review/inquiries/', data=test_inquiry) + self.assertEqual(response.status_code, status.HTTP_201_CREATED) + + def test_inquiry_detail(self): + response = self.client.get(f'/api/back/review/inquiries/{self.test_inquiry.id}/') + self.assertEqual(response.status_code, status.HTTP_200_OK) + + def test_inquiry_detail_put(self): + data = { + 'id': self.test_inquiry.id, + 'review': self.test_review.pk, + 'author': self.user.pk, + 'comment': 'New test comment 2', + } + + response = self.client.put(f'/api/back/review/inquiries/{self.test_inquiry.id}/', data=data) + self.assertEqual(response.status_code, status.HTTP_200_OK) + + +class GridItemsTestCase(BaseTestCase): + def setUp(self): + super().setUp() + + def test_grid_list(self): + response = self.client.get('/api/back/review/inquiries/grid/') + self.assertEqual(response.status_code, status.HTTP_200_OK) + + def test_grid_list_by_inquiry_id(self): + response = self.client.get(f'/api/back/review/inquiries/{self.test_inquiry.id}/grid/') + self.assertEqual(response.status_code, status.HTTP_200_OK) + + def test_grid_post(self): + test_grid = { + 'inquiry': self.test_inquiry.pk, + 'name': 'New test name', + } + response = self.client.post('/api/back/review/inquiries/grid/', data=test_grid) + self.assertEqual(response.status_code, status.HTTP_201_CREATED) + + def test_grid_detail(self): + response = self.client.get(f'/api/back/review/inquiries/grid/{self.test_grid.id}/') + self.assertEqual(response.status_code, status.HTTP_200_OK) + + def test_grid_detail_put(self): + data = { + 'id': self.test_grid.id, + 'inquiry': self.test_inquiry.pk, + 'name': 'New test name 2', + } + + response = self.client.put(f'/api/back/review/inquiries/grid/{self.test_inquiry.id}/', data=data) + self.assertEqual(response.status_code, status.HTTP_200_OK)