From c2da97f636358fc4304e0b048fedd7de9155b72d Mon Sep 17 00:00:00 2001 From: George Katsikas <giorgakis.katsikas@gmail.com> Date: Tue, 14 Nov 2023 13:05:42 +0100 Subject: [PATCH] add factories for all blog models --- scipost_django/blog/factories.py | 34 +++++++++++++++++++++ scipost_django/blog/tests.py | 7 ----- scipost_django/blog/tests/__init__.py | 0 scipost_django/blog/tests/test_factories.py | 17 +++++++++++ 4 files changed, 51 insertions(+), 7 deletions(-) create mode 100644 scipost_django/blog/factories.py delete mode 100644 scipost_django/blog/tests.py create mode 100644 scipost_django/blog/tests/__init__.py create mode 100644 scipost_django/blog/tests/test_factories.py diff --git a/scipost_django/blog/factories.py b/scipost_django/blog/factories.py new file mode 100644 index 000000000..a5138dfaf --- /dev/null +++ b/scipost_django/blog/factories.py @@ -0,0 +1,34 @@ +__copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)" +__license__ = "AGPL v3" + +from django.utils.text import slugify +import factory + +from common.faker import LazyAwareDate, LazyRandEnum +from scipost.factories import UserFactory + +from .models import BlogPost, Category + + +class CategoryFactory(factory.django.DjangoModelFactory): + class Meta: + model = Category + + title = factory.Faker("word") + slug = factory.LazyAttribute(lambda self: slugify(self.title)) + description = factory.Faker("paragraph") + + +class BlogPostFactory(factory.django.DjangoModelFactory): + class Meta: + model = BlogPost + + status = LazyRandEnum(BlogPost.STATUS_CHOICES) + title = factory.Faker("sentence") + slug = factory.LazyAttribute(lambda self: slugify(self.title)) + blurb = factory.Faker("paragraph") + blurb_image = factory.django.ImageField() + blurb_image_caption = factory.Faker("paragraph") + body = factory.Faker("paragraphs", nb=3) + date_posted = LazyAwareDate("date_this_decade") + posted_by = factory.SubFactory(UserFactory) diff --git a/scipost_django/blog/tests.py b/scipost_django/blog/tests.py deleted file mode 100644 index ddef03c4d..000000000 --- a/scipost_django/blog/tests.py +++ /dev/null @@ -1,7 +0,0 @@ -__copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)" -__license__ = "AGPL v3" - - -from django.test import TestCase - -# Create your tests here. diff --git a/scipost_django/blog/tests/__init__.py b/scipost_django/blog/tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/scipost_django/blog/tests/test_factories.py b/scipost_django/blog/tests/test_factories.py new file mode 100644 index 000000000..e9733db11 --- /dev/null +++ b/scipost_django/blog/tests/test_factories.py @@ -0,0 +1,17 @@ +__copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)" +__license__ = "AGPL v3" + +from django.test import TestCase +from ..factories import BlogPostFactory, CategoryFactory + + +class TestCategoryFactory(TestCase): + def test_can_create_categories(self): + category = CategoryFactory() + self.assertIsNotNone(category) + + +class TestBlogPostFactory(TestCase): + def test_can_create_blog_posts(self): + blog_post = BlogPostFactory() + self.assertIsNotNone(blog_post) -- GitLab