fix some test
This commit is contained in:
parent
377d8196dc
commit
ecef1a217a
|
|
@ -42,8 +42,9 @@ class BaseTestCase(APITestCase):
|
||||||
start=datetime.fromisoformat("2020-12-03 12:00:00"),
|
start=datetime.fromisoformat("2020-12-03 12:00:00"),
|
||||||
end=datetime.fromisoformat("2020-12-03 12:00:00"),
|
end=datetime.fromisoformat("2020-12-03 12:00:00"),
|
||||||
state=News.PUBLISHED,
|
state=News.PUBLISHED,
|
||||||
slug='test-news'
|
slugs={'en-GB': 'test-news'}
|
||||||
)
|
)
|
||||||
|
self.slug = next(iter(self.test_news.slugs.values()))
|
||||||
|
|
||||||
self.test_content_type = ContentType.objects.get(
|
self.test_content_type = ContentType.objects.get(
|
||||||
app_label="news", model="news")
|
app_label="news", model="news")
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
import django.contrib.postgres.fields.hstore
|
import django.contrib.postgres.fields.hstore
|
||||||
from django.db import migrations
|
from django.db import migrations
|
||||||
|
from django.contrib.postgres.operations import HStoreExtension
|
||||||
|
|
||||||
def migrate_slugs(apps, schemaeditor):
|
def migrate_slugs(apps, schemaeditor):
|
||||||
News = apps.get_model('news', 'News')
|
News = apps.get_model('news', 'News')
|
||||||
|
|
@ -18,6 +19,7 @@ class Migration(migrations.Migration):
|
||||||
]
|
]
|
||||||
|
|
||||||
operations = [
|
operations = [
|
||||||
|
HStoreExtension(),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='news',
|
model_name='news',
|
||||||
name='slugs',
|
name='slugs',
|
||||||
|
|
|
||||||
|
|
@ -179,7 +179,7 @@ class NewsBackOfficeBaseSerializer(NewsBaseSerializer):
|
||||||
|
|
||||||
def validate(self, attrs):
|
def validate(self, attrs):
|
||||||
slugs = attrs.get('slugs', {})
|
slugs = attrs.get('slugs', {})
|
||||||
if models.News.objects.filter(slugs__values__contains=[slugs.values()]).exists():
|
if models.News.objects.filter(slugs__values__contains=list(slugs.values())).exists():
|
||||||
raise serializers.ValidationError({'slugs': _('News with this slug already exists.')})
|
raise serializers.ValidationError({'slugs': _('News with this slug already exists.')})
|
||||||
return attrs
|
return attrs
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -66,10 +66,11 @@ class BaseTestCase(APITestCase):
|
||||||
start=datetime.now() + timedelta(hours=-2),
|
start=datetime.now() + timedelta(hours=-2),
|
||||||
end=datetime.now() + timedelta(hours=2),
|
end=datetime.now() + timedelta(hours=2),
|
||||||
state=News.PUBLISHED,
|
state=News.PUBLISHED,
|
||||||
slug='test-news-slug',
|
slugs={'en-GB': 'test-news-slug'},
|
||||||
country=self.country_ru,
|
country=self.country_ru,
|
||||||
site=self.site_ru
|
site=self.site_ru
|
||||||
)
|
)
|
||||||
|
self.slug = next(iter(self.test_news.slugs.values()))
|
||||||
|
|
||||||
|
|
||||||
class NewsTestCase(BaseTestCase):
|
class NewsTestCase(BaseTestCase):
|
||||||
|
|
@ -84,7 +85,7 @@ class NewsTestCase(BaseTestCase):
|
||||||
"start": datetime.now() + timedelta(hours=-2),
|
"start": datetime.now() + timedelta(hours=-2),
|
||||||
"end": datetime.now() + timedelta(hours=2),
|
"end": datetime.now() + timedelta(hours=2),
|
||||||
"state": News.PUBLISHED,
|
"state": News.PUBLISHED,
|
||||||
"slug": 'test-news-slug_post',
|
"slugs": {'en-GB': 'test-news-slug_post'},
|
||||||
"country_id": self.country_ru.id,
|
"country_id": self.country_ru.id,
|
||||||
"site_id": self.site_ru.id
|
"site_id": self.site_ru.id
|
||||||
}
|
}
|
||||||
|
|
@ -97,7 +98,7 @@ class NewsTestCase(BaseTestCase):
|
||||||
response = self.client.get(reverse('web:news:list'))
|
response = self.client.get(reverse('web:news:list'))
|
||||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||||
|
|
||||||
response = self.client.get(f"/api/web/news/slug/{self.test_news.slug}/")
|
response = self.client.get(f"/api/web/news/slug/{self.slug}/")
|
||||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||||
|
|
||||||
response = self.client.get("/api/web/news/types/")
|
response = self.client.get("/api/web/news/types/")
|
||||||
|
|
@ -117,7 +118,7 @@ class NewsTestCase(BaseTestCase):
|
||||||
data = {
|
data = {
|
||||||
'id': self.test_news.id,
|
'id': self.test_news.id,
|
||||||
'description': {"ru-RU": "Description test news!"},
|
'description': {"ru-RU": "Description test news!"},
|
||||||
'slug': self.test_news.slug,
|
'slugs': self.test_news.slugs,
|
||||||
'start': self.test_news.start,
|
'start': self.test_news.start,
|
||||||
'news_type_id': self.test_news.news_type_id,
|
'news_type_id': self.test_news.news_type_id,
|
||||||
'country_id': self.country_ru.id,
|
'country_id': self.country_ru.id,
|
||||||
|
|
@ -133,10 +134,10 @@ class NewsTestCase(BaseTestCase):
|
||||||
"object_id": self.test_news.id
|
"object_id": self.test_news.id
|
||||||
}
|
}
|
||||||
|
|
||||||
response = self.client.post(f'/api/web/news/slug/{self.test_news.slug}/favorites/', data=data)
|
response = self.client.post(f'/api/web/news/slug/{self.slug}/favorites/', data=data)
|
||||||
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
|
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
|
||||||
|
|
||||||
response = self.client.delete(f'/api/web/news/slug/{self.test_news.slug}/favorites/', format='json')
|
response = self.client.delete(f'/api/web/news/slug/{self.slug}/favorites/', format='json')
|
||||||
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
|
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -56,17 +56,18 @@ class TranslateFieldTests(BaseTestCase):
|
||||||
start=datetime.now(pytz.utc) + timedelta(hours=-13),
|
start=datetime.now(pytz.utc) + timedelta(hours=-13),
|
||||||
end=datetime.now(pytz.utc) + timedelta(hours=13),
|
end=datetime.now(pytz.utc) + timedelta(hours=13),
|
||||||
news_type=self.news_type,
|
news_type=self.news_type,
|
||||||
slug='test',
|
slugs={'en-GB': 'test'},
|
||||||
state=News.PUBLISHED,
|
state=News.PUBLISHED,
|
||||||
country=self.country_ru,
|
country=self.country_ru,
|
||||||
)
|
)
|
||||||
|
self.slug = next(iter(self.news_item.slugs.values()))
|
||||||
self.news_item.save()
|
self.news_item.save()
|
||||||
|
|
||||||
def test_model_field(self):
|
def test_model_field(self):
|
||||||
self.assertTrue(hasattr(self.news_item, "title_translated"))
|
self.assertTrue(hasattr(self.news_item, "title_translated"))
|
||||||
|
|
||||||
def test_read_locale(self):
|
def test_read_locale(self):
|
||||||
response = self.client.get(f"/api/web/news/slug/{self.news_item.slug}/", format='json')
|
response = self.client.get(f"/api/web/news/slug/{self.slug}/", format='json')
|
||||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||||
news_data = response.json()
|
news_data = response.json()
|
||||||
self.assertIn("title_translated", news_data)
|
self.assertIn("title_translated", news_data)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user