Changeset View
Changeset View
Standalone View
Standalone View
search/tests/test_signals.py
| from unittest.mock import patch | from unittest.mock import patch | ||||
| from django.db.models.signals import post_save, pre_delete | from django.db.models.signals import post_save, pre_delete | ||||
| from django.test.testcases import TestCase | from django.test.testcases import TestCase | ||||
| from blog.models import Revision, Post | from blog.models import Revision, Post | ||||
| from common.tests.factories.blog import PostFactory | from common.tests.factories.blog import PostFactory | ||||
| from common.tests.factories.films import FilmFactory | from common.tests.factories.films import FilmFactory | ||||
| from common.tests.factories.helpers import generate_file_path, catch_signal | from common.tests.factories.helpers import generate_file_path, catch_signal | ||||
| from common.tests.factories.static_assets import StorageLocationFactory | |||||
| from common.tests.factories.users import UserFactory | from common.tests.factories.users import UserFactory | ||||
| from films.models import Film, FilmStatus | from films.models import Film, FilmStatus | ||||
| class TestBlogPostIndexing(TestCase): | class TestBlogPostIndexing(TestCase): | ||||
| @classmethod | @classmethod | ||||
| def setUpTestData(cls) -> None: | def setUpTestData(cls) -> None: | ||||
| cls.user = UserFactory() | cls.user = UserFactory() | ||||
| cls.published_post = PostFactory(film=None) | cls.published_post = PostFactory(film=None) | ||||
| cls.unpublished_post = PostFactory(is_published=False, film=None) | cls.unpublished_post = PostFactory(is_published=False, film=None) | ||||
| cls.revision_data = { | cls.revision_data = { | ||||
| 'editor': cls.user, | 'editor': cls.user, | ||||
| 'title': 'Strawberry Fields Forever', | 'title': 'Strawberry Fields Forever', | ||||
| 'topic': 'Announcement', | 'topic': 'Announcement', | ||||
| 'content': '# Hot news', | 'content': '# Hot news', | ||||
| 'storage_location': StorageLocationFactory(), | |||||
| 'thumbnail': generate_file_path(), | 'thumbnail': generate_file_path(), | ||||
| } | } | ||||
| def test_blog_post_without_revision_does_not_trigger_post_save_signal(self): | def test_blog_post_without_revision_does_not_trigger_post_save_signal(self): | ||||
| with catch_signal(post_save, sender=Revision) as handler: | with catch_signal(post_save, sender=Revision) as handler: | ||||
| post = Post.objects.create(author=self.user, slug='empty-post') | post = Post.objects.create(author=self.user, slug='empty-post') | ||||
| handler.assert_not_called() | handler.assert_not_called() | ||||
| ▲ Show 20 Lines • Show All 53 Lines • ▼ Show 20 Lines | def test_new_published_revision_overwrites_previous_revision(self, add_documents_mock): | ||||
| self.assertEqual(search_id_1, search_id_2) | self.assertEqual(search_id_1, search_id_2) | ||||
| class TestPostDeleteSignal(TestCase): | class TestPostDeleteSignal(TestCase): | ||||
| @classmethod | @classmethod | ||||
| def setUpTestData(cls) -> None: | def setUpTestData(cls) -> None: | ||||
| cls.user = UserFactory() | cls.user = UserFactory() | ||||
| cls.film_data = { | cls.film_data = { | ||||
| 'storage_location': StorageLocationFactory(), | |||||
| 'title': 'Strawberry Fields Forever', | 'title': 'Strawberry Fields Forever', | ||||
| 'slug': 'strawberry-fields-forever', | 'slug': 'strawberry-fields-forever', | ||||
| 'description': 'Living is easy with eyes closed', | 'description': 'Living is easy with eyes closed', | ||||
| 'summary': 'Misunderstanding all you see', | 'summary': 'Misunderstanding all you see', | ||||
| 'status': FilmStatus.released.value, | 'status': FilmStatus.released.value, | ||||
| 'is_published': True, | 'is_published': True, | ||||
| 'logo': generate_file_path(), | 'logo': generate_file_path(), | ||||
| 'poster': generate_file_path(), | 'poster': generate_file_path(), | ||||
| Show All 18 Lines | |||||