Skip to content

Feature/user factory prepr#176

Open
Keleseth wants to merge 8 commits intodevfrom
feature/user_factory
Open

Feature/user factory prepr#176
Keleseth wants to merge 8 commits intodevfrom
feature/user_factory

Conversation

@Keleseth
Copy link
Copy Markdown
Contributor

@Keleseth Keleseth commented Feb 18, 2025

Сырой pr для ознакомления с направлением. Создана фабрика для компаний и юзеров (для юзеров нужны несколько). Создана функция create_tabit_user. Включает:

  1. Создание компании по фабрике, добавление в сессию
  2. Изъятие id созданной компании, изъятие id, добавление этого id в создание фабрики юзера.
  3. Создание пользователя от созданной фабрики юзера.
    Компания и пользователь создаются и записываются в бд.

p.s. тут, конечно, всё очень сыро и это наброски, pr для ознакомления с имеющимся

Copy link
Copy Markdown
Member

@KonstantinRaikhert KonstantinRaikhert left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

В целом вроде туда движение. Можно и в асинхронке реализовать. Правдка всё равно заполнение будет в другом потоке

Comment thread src/users/factories/company_factory.py Outdated
from pydantic import HttpUrl


class CompanyFactory(factory.DictFactory):
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Фабрики наверно логично разложить по смыслу. Тут компания а не юзеры)

Comment thread src/users/factories/company_factory.py Outdated

class CompanyFactory(factory.DictFactory):
id = None
name: str = factory.Faker('company')
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Предполагаю, что нужно еще локализацую RU назначить

Comment thread src/users/factories/user.py Outdated
)
from src.users.factories.company_factory import CompanyFactory

PATRONYMICS = [
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Вроде отчества тоже были в библиотеке, ну так, на всякий случай)

Comment thread src/users/factories/user.py Outdated
return super()._create(model_class, *args, **kwargs)


async def create_tabit_user():
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Да, данная функция оптимальна для создания одного объекта, но нужно посмотреть в сторону передачи аргументов и создания например 10 пользователей

@Keleseth
Copy link
Copy Markdown
Contributor Author

Всё сделаю, и разместить по папкам соответствующим, конечно, тоже. Пока чисто макет) И на создание множества пользователей тоже. Вообще, задача подразумевала создание фабрик, функцией только проверял работу фабрики и валидность значений. Значения для полей тоже буду править.
Отчества искал, но чего-то не нашел( поищу еще раз.

@KonstantinRaikhert
Copy link
Copy Markdown
Member

@Keleseth Этот закрываем?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Реализовать фабрики для создания тестовых данных пользователей

2 participants