Python · SDK · 27 capitais

Gerador de CEP em Python

SDK fakeforge-br gera CEP no formato dos Correios (5 dígitos + hífen + 3). Cobre todas as 27 capitais brasileiras.

pip install fakeforge-br

from fakeforge import FakeForge
ceps = FakeForge().cep(100)

SDK oficial

from fakeforge import FakeForge

ff = FakeForge()

# 100 CEPs no formato oficial
ceps = ff.cep(100)
for c in ceps[:5]:
    print(c)  # "01310-100"

# Sem formatação (só dígitos)
ceps_puros = ff.cep(50, formatted=False)
# ["01310100", "22440000", ...]

# Endereço completo com CEP incluso
enderecos = ff.address(10)
for e in enderecos:
    print(f"{e['cep']} — {e['cidade']}/{e['estado']}")

Django — model com validator de CEP

# myapp/management/commands/seed_ceps.py
from django.core.management.base import BaseCommand
from fakeforge import FakeForge
from myapp.models import EnderecoEntrega

class Command(BaseCommand):
    def handle(self, *args, **options):
        ff = FakeForge()
        enderecos = ff.address(1000)

        EnderecoEntrega.objects.bulk_create([
            EnderecoEntrega(
                cep=e["cep"],
                logradouro=e["logradouro"],
                cidade=e["cidade"],
                uf=e["estado"],
            )
            for e in enderecos
        ])

pytest — validador CEP

# tests/test_cep_validator.py
import pytest
from fakeforge import FakeForge
from myapp.validators import validar_cep

@pytest.fixture(scope="session")
def ceps(ff):
    return ff.cep(100)

class TestValidadorCep:
    @pytest.mark.parametrize("indice", range(30))
    def test_valida_cep_formatado(self, ceps, indice):
        assert validar_cep(ceps[indice])

    def test_rejeita_cep_invalido(self):
        assert not validar_cep("00000-000")
        assert not validar_cep("abc")
        assert not validar_cep("1234")