From 00e96d42e6d2d92ba3ca02e88d07ce10edcb0a24 Mon Sep 17 00:00:00 2001 From: George Katsikas <giorgakis.katsikas@gmail.com> Date: Fri, 17 Nov 2023 13:49:12 +0100 Subject: [PATCH] add factories for all news models --- scipost_django/news/factories.py | 24 ++++++++++++++++++++- scipost_django/news/tests/test_factories.py | 18 ++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 scipost_django/news/tests/test_factories.py diff --git a/scipost_django/news/factories.py b/scipost_django/news/factories.py index 6a9a1b6b8..6b2f5a211 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 000000000..f175a91fb --- /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) -- GitLab