add custom attributes to factory

This commit is contained in:
Waylon Walker 2023-05-22 08:27:26 -05:00
parent ad1b6d19b9
commit 5e824f3bb3
No known key found for this signature in database
GPG key ID: 66E2BF2B4190EFE4

View file

@ -1,7 +1,36 @@
from faker import Faker
from polyfactory.factories.pydantic_factory import ModelFactory
from learn_sql_model.factories.pet import PetFactory
from learn_sql_model.models.hero import Hero
from learn_sql_model.models.pet import Pet
class HeroFactory(ModelFactory[Hero]):
__model__ = Hero
__faker__ = Faker(locale="en_US")
__set_as_default_factory_for_type__ = True
id = None
pet_id = None
__random_seed__ = 10
@classmethod
def name(cls) -> str:
return cls.__faker__.first_name()
@classmethod
def secret_name(cls) -> str:
return cls.__faker__.name()
@classmethod
def age(cls) -> str:
return cls.__faker__.pyint(min_value=5, max_value=100)
@classmethod
def shoe_size(cls) -> str:
return cls.__faker__.pyint(min_value=5, max_value=14)
@classmethod
def pet(cls) -> Pet:
return PetFactory().build