Любые предложения о том, как писать фабрики для DTO в Python - PullRequest
0 голосов
/ 17 июня 2020

Я использую DTO для передачи данных между разными уровнями / классами в моем приложении. Поэтому во время тестирования этих классов мне пришлось вручную создавать объекты этих классов данных с некоторыми фиктивными данными, что является для меня серьезной проблемой при любых предложениях по автоматизации таких вещей, как factoryboy для моделей Django.

1 Ответ

1 голос
/ 10 июля 2020

У меня есть пользовательский DTO, как показано ниже.

import dataclasses
@dataclasses.dataclass
class UserDetailsDto:
    user_id: int
    user_name: str
    profile_pic: str
    is_admin: bool

для этого DTO, я пишу фабрику, подобную этой.

import factory
import factory.fuzzy
class UserDetailsDtoFactory(factory.Factory):
    class Meta:
        model = UserDetailsDto

    user_id = factory.sequence(lambda n: n)
    user_name = factory.sequence(lambda n: 'Username-%s' % n)
    profile_pic = factory.sequence(lambda n: 'Dummy Profile Pic %s' % n)
    is_admin = factory.Iterator([True, False])

Я успешно использую этот подход. Вы также можете попробовать это. Надеюсь, это поможет вам.

...