Custom Faker Storage provider
python
from faker.providers.lorem.en_US import Provider as LoremProvider
from factory import Faker as BaseFaker
from factory import Factory
from localize.models import Location
import os
class FakerStorageProvider(LoremProvider):
"""Custom Faker provider for generating random server path."""
__provider__ = "faker_storage"
def faker_storage(self) -> str:
"""Generate a random server path."""
depth = self.random_int(1, 5)
final_path = os.sep.join(self.words(depth, unique=True))
return f"/storage/{final_path}"
our_faker = BaseFaker("faker_storage", locale="en_US")
our_faker.add_provider(FakerStorageProvider)
class LocationFactory(Factory):
"""Factory for generating location data."""
class Meta:
model = Location
root = our_faker