forked from Anteros-Code-Mentoria/poc-mvc-ocr
38 lines
1.3 KiB
Python
38 lines
1.3 KiB
Python
import factory
|
|
from faker import Faker
|
|
from app.models.user import User
|
|
from app.models.invoice import Invoice
|
|
from app.database import db
|
|
|
|
# Configurar Faker para usar dados do Brasil
|
|
faker = Faker("pt_BR")
|
|
|
|
|
|
class UserFactory(factory.alchemy.SQLAlchemyModelFactory):
|
|
class Meta:
|
|
model = User
|
|
sqlalchemy_session = db.session
|
|
sqlalchemy_session_persistence = "commit"
|
|
|
|
id = factory.Sequence(lambda n: n + (2 if User.query.filter_by(id=1).first() is not None else 1))
|
|
name = factory.LazyAttribute(lambda _: faker.name()) # Nome em pt_BR
|
|
email = factory.LazyAttribute(lambda _: faker.email()) # Email realista em pt_BR
|
|
password = factory.LazyAttribute(lambda _: faker.password()) # Email realista em pt_BR
|
|
|
|
class InvoiceFactory(factory.alchemy.SQLAlchemyModelFactory):
|
|
class Meta:
|
|
model = Invoice
|
|
sqlalchemy_session = db.session
|
|
sqlalchemy_session_persistence = "commit"
|
|
|
|
id = factory.Sequence(lambda n: n + 1)
|
|
amount = factory.Faker("pydecimal", left_digits=4, right_digits=2, positive=True, locale="pt_BR")
|
|
|
|
@factory.lazy_attribute
|
|
def user_id(self):
|
|
existing_user = User.query.first()
|
|
if not existing_user:
|
|
existing_user = UserFactory() # Cria um usuário se não existir
|
|
return existing_user.id
|
|
|