import factory from .models import PDFResource class ResourceTypeModelFactory(factory.django.DjangoModelFactory): class Meta: model = "resources.ResourceType" django_get_or_create = ("name",) name = factory.Sequence(lambda n: f"Default Resource Type {n}") class ResourceCategoryModelFactory(factory.django.DjangoModelFactory): class Meta: model = "resources.ResourceCategory" django_get_or_create = ("name",) name = factory.Sequence(lambda n: f"Default Resource Category {n}") class PDFResourceModelFactory(factory.django.DjangoModelFactory): class Meta: model = "resources.PDFResource" resource = factory.SubFactory("resources.tests.factories.ResourceModelFactory") file_name = factory.Sequence(lambda n: f"test_{n}.pdf") file_size = factory.Faker("random_int", min=0, max=1000) class PDFPageSnapshotModelFactory(factory.django.DjangoModelFactory): class Meta: model = "resources.PDFPageSnapshot" name = factory.Sequence(lambda n: f"pdf_page_snapshot_{n}") file_name = factory.Sequence(lambda n: f"pdf_page_snapshot_{n}.jpg") pdf_file = factory.SubFactory("pyblackbird_cc.resources.factories.PDFResourceModelFactory") class ResourceModelFactory(factory.django.DjangoModelFactory): class Meta: model = "resources.Resource" name = factory.Sequence(lambda n: f"Default Resource {n}") thumbnail_filenames = factory.Sequence(lambda n: [f"thumbnail_{n}.jpg"]) resource_type = factory.SubFactory( "pyblackbird_cc.resources.factories.ResourceTypeModelFactory" ) main_resource_category = factory.SubFactory( "pyblackbird_cc.resources.factories.ResourceCategoryModelFactory" ) additional_resource_category = factory.SubFactory( "pyblackbird_cc.resources.factories.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, # )