Handling Custom Types¶
If your model has an attribute that is not supported by pyfactories
and
it depends on third party libraries, you can create your custom extension
subclassing the ModelFactory
, and overriding the get_mock_value
method to
add your logic.
from typing import Any
from pyfactories import ModelFactory
class CustomFactory(ModelFactory[Any]):
"""Tweak the ModelFactory to add our custom mocks."""
@classmethod
def get_mock_value(cls, field_type: Any) -> Any:
"""Add our custom mock value."""
if str(field_type) == "my_super_rare_datetime_field":
return cls.get_faker().date_time_between()
return super().get_mock_value(field_type)
Where cls.get_faker()
is a faker
instance that you can use to build your
returned value.