Changeset View
Changeset View
Standalone View
Standalone View
common/factories/films.py
| import uuid | |||||
| import factory | import factory | ||||
| from factory import fuzzy | |||||
| from common.factories.assets import StaticAssetFactory, StorageLocationFactory | from common.factories.static_assets import StaticAssetFactory, StorageLocationFactory | ||||
| from common.factories.user import UserFactory | from common.factories.user import UserFactory | ||||
| from films.models import ( | from films.models import ( | ||||
| Film, | Film, | ||||
| Collection, | Collection, | ||||
| Asset, | Asset, | ||||
| ProductionLog, | ProductionLog, | ||||
| ProductionLogEntry, | ProductionLogEntry, | ||||
| ProductionLogEntryAsset, | ProductionLogEntryAsset, | ||||
| FilmStatus, | |||||
| AssetCategory, | |||||
| ) | ) | ||||
| def generate_image_path() -> str: | |||||
| return f'tests/images/{uuid.uuid4()}.jpg' | |||||
| class FilmFactory(factory.DjangoModelFactory): | class FilmFactory(factory.DjangoModelFactory): | ||||
| class Meta: | class Meta: | ||||
| model = Film | model = Film | ||||
| title = factory.Faker('text', max_nb_chars=20) | title = factory.Faker('text', max_nb_chars=20) | ||||
| slug = factory.Faker('slug') | slug = factory.Faker('slug') | ||||
| description = factory.Faker('sentence') | |||||
| summary = factory.Faker('paragraph') | |||||
| status = fuzzy.FuzzyChoice(FilmStatus.choices, getter=lambda c: c[0]) | |||||
| release_date = factory.Faker('date') | |||||
| is_published = True | is_published = True | ||||
| storage_location = factory.SubFactory(StorageLocationFactory) | logo = factory.LazyFunction(generate_image_path) | ||||
| poster = factory.LazyFunction(generate_image_path) | |||||
| picture_header = factory.LazyFunction(generate_image_path) | |||||
| storage_location = factory.SubFactory( | |||||
| StorageLocationFactory, name=factory.SelfAttribute('..title') | |||||
| ) | |||||
| class CollectionFactory(factory.DjangoModelFactory): | class CollectionFactory(factory.DjangoModelFactory): | ||||
| class Meta: | class Meta: | ||||
| model = Collection | model = Collection | ||||
| film = factory.SubFactory(FilmFactory) | film = factory.SubFactory(FilmFactory) | ||||
| name = factory.Faker('text', max_nb_chars=30) | name = factory.Faker('text', max_nb_chars=30) | ||||
| slug = factory.Faker('slug') | slug = factory.Faker('slug') | ||||
| text = factory.Faker('paragraph') | |||||
| storage_location = factory.SelfAttribute('film.storage_location') | storage_location = factory.SelfAttribute('film.storage_location') | ||||
| class AssetFactory(factory.DjangoModelFactory): | class AssetFactory(factory.DjangoModelFactory): | ||||
| class Meta: | class Meta: | ||||
| model = Asset | model = Asset | ||||
| film = factory.SubFactory(FilmFactory) | film = factory.SubFactory(FilmFactory) | ||||
| collection = factory.SubFactory(CollectionFactory, film=factory.SelfAttribute('..film')) | collection = factory.SubFactory(CollectionFactory, film=factory.SelfAttribute('..film')) | ||||
| static_asset = factory.SubFactory( | static_asset = factory.SubFactory( | ||||
| StaticAssetFactory, storage_location=factory.SelfAttribute('..film.storage_location') | StaticAssetFactory, storage_location=factory.SelfAttribute('..film.storage_location') | ||||
| ) | ) | ||||
| name = factory.Faker('text', max_nb_chars=30) | name = factory.Faker('text', max_nb_chars=30) | ||||
| slug = factory.Faker('slug') | |||||
| description = factory.Faker('paragraph') | |||||
| category = fuzzy.FuzzyChoice(AssetCategory.choices, getter=lambda c: c[0]) | |||||
| is_published = True | is_published = True | ||||
| class ProductionLogFactory(factory.DjangoModelFactory): | class ProductionLogFactory(factory.DjangoModelFactory): | ||||
| class Meta: | class Meta: | ||||
| model = ProductionLog | model = ProductionLog | ||||
| film = factory.SubFactory(FilmFactory) | film = factory.SubFactory(FilmFactory) | ||||
| summary = factory.Faker('text') | summary = factory.Faker('text') | ||||
| user = factory.SubFactory(UserFactory) | user = factory.SubFactory(UserFactory) | ||||
| storage_location = factory.SelfAttribute('film.storage_location') | storage_location = factory.SelfAttribute('film.storage_location') | ||||
| picture_16_9 = factory.Faker('file_path', category='image') | picture_16_9 = factory.LazyFunction(generate_image_path) | ||||
| class ProductionLogEntryFactory(factory.DjangoModelFactory): | class ProductionLogEntryFactory(factory.DjangoModelFactory): | ||||
| class Meta: | class Meta: | ||||
| model = ProductionLogEntry | model = ProductionLogEntry | ||||
| production_log = factory.SubFactory(ProductionLogFactory) | production_log = factory.SubFactory(ProductionLogFactory) | ||||
| description = factory.Faker('text') | description = factory.Faker('text') | ||||
| Show All 10 Lines | |||||