diff --git a/scipost_django/news/factories.py b/scipost_django/news/factories.py index 6a9a1b6b8b9be8f7aacae2445ae8bf12f51b2bf1..6b2f5a21117019bc17415260738d796a4a509272 100644 --- a/scipost_django/news/factories.py +++ b/scipost_django/news/factories.py @@ -4,7 +4,29 @@ __license__ = "AGPL v3" import factory -from .models import NewsItem +from .models import NewsItem, NewsLetter + + +class NewsLetterFactory(factory.django.DjangoModelFactory): + class Meta: + model = NewsLetter + + date = factory.Faker("date_this_year") + intro = factory.Faker("paragraph", nb_sentences=2) + closing = factory.Faker("paragraph", nb_sentences=2) + published = True + + # Create NewsItems for this NewsLetter linking them through NewsLetterNewsItemsTable + @factory.post_generation + def news_items(self, create, extracted, **kwargs): + if not create: + return + + if extracted: + for news_item in extracted: + self.news_items.add(news_item) + + self.news_items = NewsItemFactory.create_batch(3) class NewsItemFactory(factory.django.DjangoModelFactory): diff --git a/scipost_django/news/tests/test_factories.py b/scipost_django/news/tests/test_factories.py new file mode 100644 index 0000000000000000000000000000000000000000..f175a91fb966dec8271dab0e02b7be901ba83422 --- /dev/null +++ b/scipost_django/news/tests/test_factories.py @@ -0,0 +1,18 @@ +__copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)" +__license__ = "AGPL v3" + + +from django.test import TestCase +from ..factories import NewsItemFactory, NewsLetterFactory + + +class TestNewsLetterFactory(TestCase): + def test_can_create_news_letters(self): + news_letter = NewsLetterFactory() + self.assertIsNotNone(news_letter) + + +class TestNewsItemFactory(TestCase): + def test_can_create_news_items(self): + news_item = NewsItemFactory() + self.assertIsNotNone(news_item)