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"}') diff --git a/apps/collection/tests.py b/apps/collection/tests.py index 7ce503c2..463d5fe5 100644 --- a/apps/collection/tests.py +++ b/apps/collection/tests.py @@ -1,3 +1,82 @@ -from django.test import TestCase +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, Guide +from location.models import Country # Create your tests here. + + +class BaseTestCase(APITestCase): + + def setUp(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'), + 'country_code': 'en'}) + + +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="en" + ) + + self.collection = Collection.objects.create( + name='Test collection', + is_publish=True, + 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}/establishments/?country_code=en', + format='json') + self.assertEqual(response.status_code, status.HTTP_200_OK) + + +class CollectionGuideTests(CollectionDetailTests): + + 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 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) 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'),