import factory from core.utils.common import load_func from django.conf import settings from io_storages.base_models import ImportStorage, ProjectStorageMixin from io_storages.models import ( AzureBlobExportStorage, AzureBlobImportStorage, GCSImportStorage, RedisImportStorage, S3ImportStorage, ) class StorageFactory(factory.django.DjangoModelFactory): title = factory.Faker('bs') description = factory.Faker('paragraph') class Meta: model = ImportStorage abstract = True class ImportStorageFactory(StorageFactory): class Meta: model = ImportStorage abstract = True class ProjectStorageMixinFactory(factory.django.DjangoModelFactory): project = factory.SubFactory(load_func(settings.PROJECT_FACTORY)) class Meta: model = ProjectStorageMixin abstract = True class AzureBlobStorageMixinFactory(factory.django.DjangoModelFactory): account_name = factory.Faker('word') account_key = factory.Faker('word') class Meta: abstract = True class AzureBlobImportStorageBaseFactory(AzureBlobStorageMixinFactory, ImportStorageFactory): class Meta: model = AzureBlobImportStorage abstract = True class AzureBlobImportStorageFactory(AzureBlobImportStorageBaseFactory, ProjectStorageMixinFactory): class Meta: model = AzureBlobImportStorage class S3StorageMixinFactory(factory.django.DjangoModelFactory): class Meta: abstract = True class S3ImportStorageBaseFactory(S3StorageMixinFactory, ImportStorageFactory): class Meta: model = S3ImportStorage abstract = True class S3ImportStorageFactory(S3ImportStorageBaseFactory, ProjectStorageMixinFactory): class Meta: model = S3ImportStorage class GCSStorageMixinFactory(factory.django.DjangoModelFactory): class Meta: abstract = True class GCSImportStorageBaseFactory(GCSStorageMixinFactory, ImportStorageFactory): class Meta: model = GCSImportStorage abstract = True class GCSImportStorageFactory(GCSImportStorageBaseFactory, ProjectStorageMixinFactory): class Meta: model = GCSImportStorage class RedisStorageMixinFactory(factory.django.DjangoModelFactory): class Meta: abstract = True class RedisImportStorageBaseFactory(RedisStorageMixinFactory, ImportStorageFactory): class Meta: model = RedisImportStorage abstract = True class RedisImportStorageFactory(RedisImportStorageBaseFactory, ProjectStorageMixinFactory): class Meta: model = RedisImportStorage class AzureBlobExportStorageFactory(factory.django.DjangoModelFactory): class Meta: model = AzureBlobExportStorage