diff --git a/apps/main/serializers.py b/apps/main/serializers.py index 732cfbad..572aff31 100644 --- a/apps/main/serializers.py +++ b/apps/main/serializers.py @@ -145,19 +145,16 @@ class AwardSerializer(AwardBaseSerializer): fields = AwardBaseSerializer.Meta.fields + ['award_type', ] -class BackAwardSerializer(serializers.ModelSerializer): +class BackAwardSerializer(AwardBaseSerializer): """Award serializer.""" - title_translated = serializers.CharField(read_only=True, allow_null=True) - class Meta: model = models.Award - fields = [ - 'id', - 'title_translated', - 'vintage_year', + fields = AwardBaseSerializer.Meta.fields + [ 'award_type', 'state', + 'content_type', + 'object_id', ] diff --git a/apps/main/tests.py b/apps/main/tests.py deleted file mode 100644 index 7ce503c2..00000000 --- a/apps/main/tests.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.test import TestCase - -# Create your tests here. diff --git a/apps/main/tests/__init__.py b/apps/main/tests/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/apps/main/tests/tests_back.py b/apps/main/tests/tests_back.py new file mode 100644 index 00000000..e09c7b4b --- /dev/null +++ b/apps/main/tests/tests_back.py @@ -0,0 +1,73 @@ +from http.cookies import SimpleCookie + +from django.contrib.contenttypes.models import ContentType +from rest_framework import status +from rest_framework.test import APITestCase + +from account.models import User +from location.models import Country +from main.models import Award, AwardType + + +class AwardTestCase(APITestCase): + + def setUp(self): + self.user = User.objects.create_user( + username='alex', + email='alex@mail.com', + password='alex_password', + is_staff=True, + ) + + # get tokens + tokens = User.create_jwt_tokens(self.user) + self.client.cookies = SimpleCookie( + {'access_token': tokens.get('access_token'), + 'refresh_token': tokens.get('refresh_token')}) + + self.country_ru = Country.objects.create( + name={'en-GB': 'Russian'}, + code='RU', + ) + + self.content_type = ContentType.objects.get(app_label="establishment", model="establishment") + + self.award_type = AwardType.objects.create( + country=self.country_ru, + name="Test award type", + ) + + self.award = Award.objects.create( + award_type=self.award_type, + vintage_year='2017', + state=Award.PUBLISHED, + object_id=1, + content_type_id=1, + ) + + def test_award_CRUD(self): + response = self.client.get('/api/back/main/awards/', format='json') + self.assertEqual(response.status_code, status.HTTP_200_OK) + + data = { + 'award_type': self.award_type.pk, + 'state': 1, + 'object_id': 1, + 'content_type': 1, + } + + response = self.client.post('/api/back/main/awards/', data=data) + self.assertEqual(response.status_code, status.HTTP_201_CREATED) + + response = self.client.get(f'/api/back/main/awards/{self.award.id}/', format='json') + self.assertEqual(response.status_code, status.HTTP_200_OK) + + update_data = { + 'vintage_year': '2019' + } + + response = self.client.patch(f'/api/back/main/awards/{self.award.id}/', data=update_data) + self.assertEqual(response.status_code, status.HTTP_200_OK) + + response = self.client.delete(f'/api/back/main/awards/{self.award.id}/') + self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) diff --git a/apps/main/urls/back.py b/apps/main/urls/back.py index 93debb5e..d92bddf8 100644 --- a/apps/main/urls/back.py +++ b/apps/main/urls/back.py @@ -7,5 +7,5 @@ app_name = 'main' urlpatterns = [ path('awards/', views.AwardLstView.as_view(), name='awards-list-create'), - path('awards//', views.AwardRUDView.as_view(), name='awards-rud'), + path('awards//', views.AwardRUDView.as_view(), name='awards-rud'), ]