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