diff options
author | Matthew Lemon <y@yulqen.org> | 2024-09-08 17:12:58 +0100 |
---|---|---|
committer | Matthew Lemon <y@yulqen.org> | 2024-09-08 17:12:58 +0100 |
commit | 63461fb0b86a8f4a1422673626311d0979cd1077 (patch) | |
tree | d7ae8a2457c1bc630cb68b6e5ce1ec371bfdc4ad /pyblackbird_cc/resources/factories.py | |
parent | db531eaa027d2abcfcceabfef4b8aa9dc5ca1e5d (diff) |
resources tests passing
Diffstat (limited to 'pyblackbird_cc/resources/factories.py')
-rw-r--r-- | pyblackbird_cc/resources/factories.py | 50 |
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): |