Changeset View
Changeset View
Standalone View
Standalone View
common/factories/static_assets.py
- This file was moved from common/factories/assets.py.
| import random | |||||
| import uuid | |||||
| import factory | import factory | ||||
| from factory import fuzzy | from factory import fuzzy | ||||
| from assets.models import StaticAsset, AssetFileTypeChoices, StorageLocation, License | |||||
| from common.factories.user import UserFactory | from common.factories.user import UserFactory | ||||
| from static_assets.models import StaticAsset, StaticAssetFileTypeChoices, StorageLocation, License | |||||
| def generate_file_path() -> str: | |||||
| extensions = ['jpg', 'png', 'blend', 'mp4', 'mov'] | |||||
| return f'tests/assets/{uuid.uuid4()}.{random.choice(extensions)}' | |||||
| class StorageLocationFactory(factory.DjangoModelFactory): | class StorageLocationFactory(factory.DjangoModelFactory): | ||||
| class Meta: | class Meta: | ||||
| model = StorageLocation | model = StorageLocation | ||||
| django_get_or_create = ('name',) | |||||
| name = factory.Faker('text', max_nb_chars=15) | name = factory.Faker('text', max_nb_chars=30) | ||||
| class LicenseFactory(factory.DjangoModelFactory): | class LicenseFactory(factory.DjangoModelFactory): | ||||
| class Meta: | class Meta: | ||||
| model = License | model = License | ||||
| name = factory.Faker('text', max_nb_chars=15) | name = factory.Faker('text', max_nb_chars=15) | ||||
| slug = factory.Faker('slug') | slug = factory.Faker('slug') | ||||
| description = factory.Faker('text') | description = factory.Faker('text') | ||||
| url = factory.Faker('url') | url = factory.Faker('url') | ||||
| class StaticAssetFactory(factory.DjangoModelFactory): | class StaticAssetFactory(factory.DjangoModelFactory): | ||||
| class Meta: | class Meta: | ||||
| model = StaticAsset | model = StaticAsset | ||||
| source = factory.Faker('file_path') | source = factory.LazyFunction(generate_file_path) | ||||
| source_type = fuzzy.FuzzyChoice(AssetFileTypeChoices, getter=lambda c: c.value) | source_type = fuzzy.FuzzyChoice(StaticAssetFileTypeChoices, getter=lambda c: c.value) | ||||
| size_bytes = 100 | size_bytes = 100 | ||||
| user = factory.SubFactory(UserFactory) | user = factory.SubFactory(UserFactory) | ||||
| license = factory.SubFactory(LicenseFactory) | license = factory.SubFactory(LicenseFactory) | ||||
| storage_location = factory.SubFactory(StorageLocationFactory) | storage_location = factory.SubFactory(StorageLocationFactory) | ||||