mirror of
https://github.com/leaders-of-digital-9-task/backend.git
synced 2024-11-15 05:56:34 +03:00
34 lines
898 B
Python
34 lines
898 B
Python
|
from collections.abc import Sequence
|
||
|
from typing import Any
|
||
|
|
||
|
from django.contrib.auth import get_user_model
|
||
|
from factory import Faker, post_generation
|
||
|
from factory.django import DjangoModelFactory
|
||
|
|
||
|
|
||
|
class UserFactory(DjangoModelFactory):
|
||
|
|
||
|
username = Faker("user_name")
|
||
|
email = Faker("email")
|
||
|
name = Faker("name")
|
||
|
|
||
|
@post_generation
|
||
|
def password(self, create: bool, extracted: Sequence[Any], **kwargs):
|
||
|
password = (
|
||
|
extracted
|
||
|
if extracted
|
||
|
else Faker(
|
||
|
"password",
|
||
|
length=42,
|
||
|
special_chars=True,
|
||
|
digits=True,
|
||
|
upper_case=True,
|
||
|
lower_case=True,
|
||
|
).evaluate(None, None, extra={"locale": None})
|
||
|
)
|
||
|
self.set_password(password)
|
||
|
|
||
|
class Meta:
|
||
|
model = get_user_model()
|
||
|
django_get_or_create = ["username"]
|