fix some test

This commit is contained in:
Kuroshini 2019-12-10 22:10:37 +03:00
parent 377d8196dc
commit ecef1a217a
5 changed files with 15 additions and 10 deletions

View File

@ -42,8 +42,9 @@ class BaseTestCase(APITestCase):
start=datetime.fromisoformat("2020-12-03 12:00:00"),
end=datetime.fromisoformat("2020-12-03 12:00:00"),
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(
app_label="news", model="news")

View File

@ -2,6 +2,7 @@
import django.contrib.postgres.fields.hstore
from django.db import migrations
from django.contrib.postgres.operations import HStoreExtension
def migrate_slugs(apps, schemaeditor):
News = apps.get_model('news', 'News')
@ -18,6 +19,7 @@ class Migration(migrations.Migration):
]
operations = [
HStoreExtension(),
migrations.AddField(
model_name='news',
name='slugs',

View File

@ -179,7 +179,7 @@ class NewsBackOfficeBaseSerializer(NewsBaseSerializer):
def validate(self, attrs):
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.')})
return attrs

View File

@ -66,10 +66,11 @@ class BaseTestCase(APITestCase):
start=datetime.now() + timedelta(hours=-2),
end=datetime.now() + timedelta(hours=2),
state=News.PUBLISHED,
slug='test-news-slug',
slugs={'en-GB': 'test-news-slug'},
country=self.country_ru,
site=self.site_ru
)
self.slug = next(iter(self.test_news.slugs.values()))
class NewsTestCase(BaseTestCase):
@ -84,7 +85,7 @@ class NewsTestCase(BaseTestCase):
"start": datetime.now() + timedelta(hours=-2),
"end": datetime.now() + timedelta(hours=2),
"state": News.PUBLISHED,
"slug": 'test-news-slug_post',
"slugs": {'en-GB': 'test-news-slug_post'},
"country_id": self.country_ru.id,
"site_id": self.site_ru.id
}
@ -97,7 +98,7 @@ class NewsTestCase(BaseTestCase):
response = self.client.get(reverse('web:news:list'))
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)
response = self.client.get("/api/web/news/types/")
@ -117,7 +118,7 @@ class NewsTestCase(BaseTestCase):
data = {
'id': self.test_news.id,
'description': {"ru-RU": "Description test news!"},
'slug': self.test_news.slug,
'slugs': self.test_news.slugs,
'start': self.test_news.start,
'news_type_id': self.test_news.news_type_id,
'country_id': self.country_ru.id,
@ -133,10 +134,10 @@ class NewsTestCase(BaseTestCase):
"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)
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)

View File

@ -56,17 +56,18 @@ class TranslateFieldTests(BaseTestCase):
start=datetime.now(pytz.utc) + timedelta(hours=-13),
end=datetime.now(pytz.utc) + timedelta(hours=13),
news_type=self.news_type,
slug='test',
slugs={'en-GB': 'test'},
state=News.PUBLISHED,
country=self.country_ru,
)
self.slug = next(iter(self.news_item.slugs.values()))
self.news_item.save()
def test_model_field(self):
self.assertTrue(hasattr(self.news_item, "title_translated"))
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)
news_data = response.json()
self.assertIn("title_translated", news_data)