poc-mvc-ocr/tests/factories.py
2025-03-05 21:35:50 -04:00

29 lines
1015 B
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 + 1)
name = factory.LazyAttribute(lambda _: faker.name()) # Nome em pt_BR
email = factory.LazyAttribute(lambda _: faker.email()) # 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")
user = factory.SubFactory(UserFactory) # Relacionamento com um usuário