From 466c0f80d709ea4ca8b38ac86945fc0e7dba1cf6 Mon Sep 17 00:00:00 2001 From: littlewolf Date: Mon, 23 Sep 2019 14:17:19 +0300 Subject: [PATCH 1/4] Add list read test Add detail read test --- apps/collection/tests.py | 93 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 92 insertions(+), 1 deletion(-) diff --git a/apps/collection/tests.py b/apps/collection/tests.py index 7ce503c2..df75d00f 100644 --- a/apps/collection/tests.py +++ b/apps/collection/tests.py @@ -1,3 +1,94 @@ -from django.test import TestCase +import json +from datetime import datetime +from rest_framework.test import APITestCase +from account.models import User +from rest_framework import status +from http.cookies import SimpleCookie + +from collection.models import Collection +from location.models import Country # Create your tests here. + + +class BaseTestCase(APITestCase): + + def setUpT(self): + self.username = 'sedragurda' + self.password = 'sedragurdaredips19' + self.email = 'sedragurda@desoz.com' + self.newsletter = True + self.user = User.objects.create_user( + username=self.username, email=self.email, password=self.password) + #get tokkens + tokkens = User.create_jwt_tokens(self.user) + self.client.cookies = SimpleCookie( + {'access_token': tokkens.get('access_token'), + 'refresh_token': tokkens.get('refresh_token')}) + + +class CollectionListTests(BaseTestCase): + def test_collection_list_Read(self): + response = self.client.get('/api/web/collections/', format='json') + self.assertEqual(response.status_code, status.HTTP_200_OK) + + +class CollectionDetailTests(BaseTestCase): + + def setUp(self): + super().setUp() + + country = Country.objects.first() + if not country: + country = Country.objects.create( + name=json.dumps({"en-GB": "Test country"}), + code="test" + ) + + self.collection = Collection.objects.create( + name='Test collection', + is_publish=True, + start=datetime.now(), + end=datetime.now(), + country=country + ) + + def test_collection_detail_Read(self): + response = self.client.get(f'/api/web/collections/{self.collection.id}/', format='json') + self.assertEqual(response.status_code, status.HTTP_200_OK) + + + + # data = { + # 'name': 'Test collection', + # + # } + # + # response = self.client.post('/api/web/collections/', data=data, format='json') + # self.assertEqual(response.status_code, status.HTTP_201_CREATED) + # + # establishment = response.json() + # + # response = self.client.get(f'/api/back/establishments/{establishment["id"]}/', format='json') + # self.assertEqual(response.status_code, status.HTTP_200_OK) + # + # update_data = { + # 'name': 'Test new establishment' + # } + # + # response = self.client.patch(f'/api/back/establishments/{establishment["id"]}/', data=update_data) + # self.assertEqual(response.status_code, status.HTTP_200_OK) + # + # response = self.client.delete(f'/api/back/establishments/{establishment["id"]}/', format='json') + # self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + + +# Class to test childs +# class ChildTestCase(BaseTestCase): +# def setUp(self): +# super().setUp() +# self.establishment = Establishment.objects.create( +# name="Test establishment", +# establishment_type_id=self.establishment_type.id, +# is_publish=True +# ) From aedcd795a9cd0c8ea889444791f36425fa37e55b Mon Sep 17 00:00:00 2001 From: littlewolf Date: Mon, 23 Sep 2019 14:21:05 +0300 Subject: [PATCH 2/4] Fix establishment model --- apps/establishment/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/establishment/models.py b/apps/establishment/models.py index 5eac27fd..5b188c3c 100644 --- a/apps/establishment/models.py +++ b/apps/establishment/models.py @@ -227,7 +227,7 @@ class Establishment(ProjectBaseMixin, URLImageMixin, TranslatedFieldsMixin): """Establishment model.""" name = models.CharField(_('name'), max_length=255, default='') - name_transliterated = models.CharField(_('Transliterated name'), + name_translated = models.CharField(_('Transliterated name'), max_length=255, default='') description = TJSONField(blank=True, null=True, default=None, verbose_name=_('description'), From b4a2893fcd7fa9d33fb98db4f92a07a2299d112c Mon Sep 17 00:00:00 2001 From: littlewolf Date: Mon, 23 Sep 2019 15:27:38 +0300 Subject: [PATCH 3/4] Add tests to guide --- apps/collection/tests.py | 66 ++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 39 deletions(-) diff --git a/apps/collection/tests.py b/apps/collection/tests.py index df75d00f..463d5fe5 100644 --- a/apps/collection/tests.py +++ b/apps/collection/tests.py @@ -1,11 +1,11 @@ -import json +import json, pytz from datetime import datetime from rest_framework.test import APITestCase from account.models import User from rest_framework import status from http.cookies import SimpleCookie -from collection.models import Collection +from collection.models import Collection, Guide from location.models import Country # Create your tests here. @@ -13,7 +13,7 @@ from location.models import Country class BaseTestCase(APITestCase): - def setUpT(self): + def setUp(self): self.username = 'sedragurda' self.password = 'sedragurdaredips19' self.email = 'sedragurda@desoz.com' @@ -24,7 +24,8 @@ class BaseTestCase(APITestCase): tokkens = User.create_jwt_tokens(self.user) self.client.cookies = SimpleCookie( {'access_token': tokkens.get('access_token'), - 'refresh_token': tokkens.get('refresh_token')}) + 'refresh_token': tokkens.get('refresh_token'), + 'country_code': 'en'}) class CollectionListTests(BaseTestCase): @@ -42,53 +43,40 @@ class CollectionDetailTests(BaseTestCase): if not country: country = Country.objects.create( name=json.dumps({"en-GB": "Test country"}), - code="test" + code="en" ) self.collection = Collection.objects.create( name='Test collection', is_publish=True, - start=datetime.now(), - end=datetime.now(), + start=datetime.now(pytz.utc), + end=datetime.now(pytz.utc), country=country ) def test_collection_detail_Read(self): - response = self.client.get(f'/api/web/collections/{self.collection.id}/', format='json') + response = self.client.get(f'/api/web/collections/{self.collection.id}/establishments/?country_code=en', + format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) +class CollectionGuideTests(CollectionDetailTests): - # data = { - # 'name': 'Test collection', - # - # } - # - # response = self.client.post('/api/web/collections/', data=data, format='json') - # self.assertEqual(response.status_code, status.HTTP_201_CREATED) - # - # establishment = response.json() - # - # response = self.client.get(f'/api/back/establishments/{establishment["id"]}/', format='json') - # self.assertEqual(response.status_code, status.HTTP_200_OK) - # - # update_data = { - # 'name': 'Test new establishment' - # } - # - # response = self.client.patch(f'/api/back/establishments/{establishment["id"]}/', data=update_data) - # self.assertEqual(response.status_code, status.HTTP_200_OK) - # - # response = self.client.delete(f'/api/back/establishments/{establishment["id"]}/', format='json') - # self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + def test_guide_list_Read(self): + response = self.client.get('/api/web/collections/guides/', format='json') + self.assertEqual(response.status_code, status.HTTP_200_OK) -# Class to test childs -# class ChildTestCase(BaseTestCase): -# def setUp(self): -# super().setUp() -# self.establishment = Establishment.objects.create( -# name="Test establishment", -# establishment_type_id=self.establishment_type.id, -# is_publish=True -# ) +class CollectionGuideDetailTests(CollectionDetailTests): + + def setUp(self): + super().setUp() + self.guide = Guide.objects.create( + collection=self.collection, + start=datetime.now(pytz.utc), + end=datetime.now(pytz.utc) + ) + + def test_guide_detail_Read(self): + response = self.client.get(f'/api/web/collections/guides/{self.guide.id}/', format='json') + self.assertEqual(response.status_code, status.HTTP_200_OK) From eca921592d00c2d3a395c59c3c284f3e57763f6c Mon Sep 17 00:00:00 2001 From: littlewolf Date: Mon, 23 Sep 2019 15:28:59 +0300 Subject: [PATCH 4/4] Fix guide parent --- apps/collection/models.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/collection/models.py b/apps/collection/models.py index a4a9bcae..928370d7 100644 --- a/apps/collection/models.py +++ b/apps/collection/models.py @@ -91,7 +91,9 @@ class GuideQuerySet(models.QuerySet): class Guide(ProjectBaseMixin, CollectionNameMixin, CollectionDateMixin): """Guide model.""" parent = models.ForeignKey( - 'self', verbose_name=_('parent'), on_delete=models.CASCADE) + 'self', verbose_name=_('parent'), on_delete=models.CASCADE, + null=True, blank=True, default=None + ) advertorials = JSONField( _('advertorials'), null=True, blank=True, default=None, help_text='{"key":"value"}')