From d94c0eccb6371e83ef48c71eece75a2350b95d65 Mon Sep 17 00:00:00 2001
From: George Katsikas <giorgakis.katsikas@gmail.com>
Date: Wed, 20 Mar 2024 12:16:29 +0100
Subject: [PATCH] add scaffold factories for all pins models

---
 scipost_django/pins/factories.py            | 42 +++++++++++++++++++++
 scipost_django/pins/tests.py                |  6 ---
 scipost_django/pins/tests/__init__.py       |  0
 scipost_django/pins/tests/test_factories.py | 17 +++++++++
 4 files changed, 59 insertions(+), 6 deletions(-)
 create mode 100644 scipost_django/pins/factories.py
 delete mode 100644 scipost_django/pins/tests.py
 create mode 100644 scipost_django/pins/tests/__init__.py
 create mode 100644 scipost_django/pins/tests/test_factories.py

diff --git a/scipost_django/pins/factories.py b/scipost_django/pins/factories.py
new file mode 100644
index 000000000..bf88435f3
--- /dev/null
+++ b/scipost_django/pins/factories.py
@@ -0,0 +1,42 @@
+__copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)"
+__license__ = "AGPL v3"
+
+from django.contrib.contenttypes.models import ContentType
+import factory
+
+from finances.models.subsidy import Subsidy
+from .models import *
+from common.faker import LazyRandEnum, fake, LazyAwareDate
+
+
+class BaseNoteFactory(factory.django.DjangoModelFactory):
+    class Meta:
+        model = Note
+
+    class Params:
+        regarding_object = factory.Trait(
+            regarding_content_type=factory.SelfAttribute("content_type"),
+            regarding_object_id=factory.SelfAttribute("object_id"),
+        )
+
+    title = factory.Faker("sentence", nb_words=4)
+    description = factory.Faker("text")
+    visibility = LazyRandEnum(Note.VISIBILITY_CHOICES)
+    author = factory.SubFactory("scipost.factories.ContributorFactory")
+    created = factory.Faker("date_time_this_year")
+    modified = factory.LazyAttribute(
+        lambda self: fake.aware.date_between(start_date=self.created, end_date="+1y")
+    )
+
+
+class BasePinFactory(factory.django.DjangoModelFactory):
+    class Meta:
+        model = Pin
+
+    note = factory.SubFactory(BaseNoteFactory)
+    user = factory.SubFactory("scipost.factories.UserFactory")
+    due_date = factory.LazyAttribute(
+        lambda self: fake.aware.date_between(
+            start_date=self.note.created, end_date="+1y"
+        )
+    )
diff --git a/scipost_django/pins/tests.py b/scipost_django/pins/tests.py
deleted file mode 100644
index 7503e9a3c..000000000
--- a/scipost_django/pins/tests.py
+++ /dev/null
@@ -1,6 +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/pins/tests/__init__.py b/scipost_django/pins/tests/__init__.py
new file mode 100644
index 000000000..e69de29bb
diff --git a/scipost_django/pins/tests/test_factories.py b/scipost_django/pins/tests/test_factories.py
new file mode 100644
index 000000000..a331f98d2
--- /dev/null
+++ b/scipost_django/pins/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 *
+
+
+# class TestSubsidyNoteFactory(TestCase):
+#     def test_can_create_subsidy_notes(self):
+#         subsidy_note = SubsidyNoteFactory()
+#         self.assertIsNotNone(subsidy_note)
+
+
+# class TestPinFactory(TestCase):
+#     def test_can_create_pins(self):
+#         pin = PinFactory()
+#         self.assertIsNotNone(pin)
-- 
GitLab