pytest · conftest · UF
Gerador de RG em pytest
Fixture pytest com RG válido por UF. Session fixture, conftest.py, integração pytest-django. SDK fakeforge-br.
pip install fakeforge-br pytest pytest-mockconftest.py
# tests/conftest.py
import pytest
from fakeforge import FakeForge
@pytest.fixture(scope="session")
def ff():
return FakeForge()
@pytest.fixture(scope="session")
def rgs(ff):
return ff.rg(100)
@pytest.fixture(scope="session")
def pessoas_com_rg(ff):
customers = ff.preset("customer", 50)
rgs = ff.rg(50)
return [
{**c, "rg": rg, "uf_emissor": c["endereco"]["estado"]}
for c, rg in zip(customers, rgs)
]Teste validador
# tests/test_validador_rg.py
import pytest
from myapp.validators import validar_rg
class TestValidadorRg:
def test_aceita_rgs_validos(self, rgs):
for rg in rgs[:30]:
assert validar_rg(rg), f"Rejeitou RG válido: {rg}"
def test_rejeita_rg_invalido(self):
assert not validar_rg("00.000.000-0")
assert not validar_rg("abc")Uso em pytest-django
# tests/test_identidade_model.py
import pytest
from myapp.models import Identidade
@pytest.mark.django_db
class TestIdentidadeModel:
def test_salva_identidade_com_rg(self, pessoas_com_rg):
p = pessoas_com_rg[0]
obj = Identidade.objects.create(
cpf=p["cpf"], nome=p["nome"],
rg=p["rg"], uf_emissor=p["uf_emissor"],
)
assert obj.pk is not None
def test_bulk_seed(self, pessoas_com_rg):
Identidade.objects.bulk_create([
Identidade(cpf=p["cpf"], nome=p["nome"], rg=p["rg"], uf_emissor=p["uf_emissor"])
for p in pessoas_com_rg
])
assert Identidade.objects.count() == len(pessoas_com_rg)