Skip to content

Faker file_stats

py
from factory import Factory
from factory import Faker
from faker.providers import BaseProvider
from localize.models import FileDependency


class FakerFileStatProvider(BaseProvider):
    """Custom Faker provider for generating file stats."""

    __provider__ = "faker_file_stat"

    def file_stats(self) -> dict:
        """Generate a random file stats dictionary."""

        return {
            "st_ino": self.random_int(1000000000000000, 9999999999999999),
            "st_size": self.random_int(100, 10000),
            "st_dev": self.random_int(1, 100),
        }


# Register the custom provider
Faker.add_provider(FakerFileStatProvider)


class FileDependencyFactory(Factory):
    """Factory for creating FileDependency instances."""

    class Meta:
        model = FileDependency

    file = Faker("name")
    file_stats = Faker("file_stats")
    index = None

Example usage

py
from localize.factories import FileDependencyFactory
# Create a FileDependency instance with random file stats
file_dependency = FileDependencyFactory() 
print(file_dependency.file_stats)

# Output: {'st_ino': 1234567890123456, 'st_size