aboutsummaryrefslogtreecommitdiffstats
path: root/pyblackbird_cc/resources/factories.py
diff options
context:
space:
mode:
authorMatthew Lemon <y@yulqen.org>2024-09-08 17:12:58 +0100
committerMatthew Lemon <y@yulqen.org>2024-09-08 17:12:58 +0100
commit63461fb0b86a8f4a1422673626311d0979cd1077 (patch)
treed7ae8a2457c1bc630cb68b6e5ce1ec371bfdc4ad /pyblackbird_cc/resources/factories.py
parentdb531eaa027d2abcfcceabfef4b8aa9dc5ca1e5d (diff)
resources tests passing
Diffstat (limited to 'pyblackbird_cc/resources/factories.py')
-rw-r--r--pyblackbird_cc/resources/factories.py50
1 files changed, 32 insertions, 18 deletions
diff --git a/pyblackbird_cc/resources/factories.py b/pyblackbird_cc/resources/factories.py
index 51afd09..6d6311a 100644
--- a/pyblackbird_cc/resources/factories.py
+++ b/pyblackbird_cc/resources/factories.py
@@ -1,3 +1,5 @@
+import itertools
+
import factory
from .models import PDFPageSnapshot
@@ -32,31 +34,43 @@ class PDFPageSnapshotModelFactory(factory.django.DjangoModelFactory):
pdf_file = factory.SubFactory("pyblackbird_cc.resources.factories.PDFResourceModelFactory")
+
class ResourceModelFactory(factory.django.DjangoModelFactory):
class Meta:
model = Resource
name = factory.Sequence(lambda n: f"Default Resource {n}")
- thumbnail_filenames = factory.Sequence(lambda n: [f"thumbnail_{n}.jpg"])
+ price = factory.Faker('pydecimal', left_digits=4, right_digits=2, positive=True)
+ thumbnail_filenames = factory.List([factory.Faker('file_name', extension='jpg') for _ in range(3)])
resource_type = factory.SubFactory(ResourceTypeModelFactory)
main_resource_category = factory.SubFactory(ResourceCategoryModelFactory)
- additional_resource_category = factory.SubFactory(ResourceCategoryModelFactory)
- description = factory.Sequence(lambda n: f"Default description {n}")
- age_range = factory.Iterator(["5-7", "7-10", "10+"])
- curriculum = factory.Iterator(["English", "Scottish"])
-
- pdfs = factory.RelatedFactoryList(
- "pyblackbird_cc.resources.factories.PDFResourceModelFactory",
- factory_related_name="resource",
- size=3,
- )
-
- # TODO: Don't think we can include this this way - we are getting import issues
- # pdf_snapshots = factory.RelatedFactoryList(
- # "pyblackbird_cc.resources.factories.PDFPageSnapshotModelFactory",
- # factory_related_name="pdfs",
- # size=20,
- # )
+ subcategories = factory.RelatedFactoryList(ResourceCategoryModelFactory, size=2)
+ description = factory.Faker('paragraph')
+ card_description = factory.Faker('text', max_nb_chars=1000)
+ age_range = factory.Iterator(["5-7", "7-9", "9-11"])
+ curriculum = factory.Iterator(["English", "Scottish", "No curriculum"])
+ feature_slot = factory.Iterator(itertools.chain([1, 2, 3], itertools.repeat(None)))
+ created_at = factory.Faker('date_time_this_year')
+ updated_at = factory.Faker('date_time_this_month')
+
+ @factory.post_generation
+ def pdfs(self, create, extracted, **kwargs):
+ if not create:
+ return
+
+ if extracted:
+ for pdf in extracted:
+ self.pdf_resources.add(pdf)
+ else:
+ PDFResourceModelFactory.create_batch(3, resource=self)
+
+
+class ResourceSubcategoryModelFactory(factory.django.DjangoModelFactory):
+ class Meta:
+ model = ResourceCategory
+ django_get_or_create = ("name",)
+
+ name = factory.Sequence(lambda n: f"Default Resource Subcategory {n}")
class PDFResourceModelFactory(factory.django.DjangoModelFactory):