test: make consolidated workspace self-contained

This commit is contained in:
gti
2026-09-29 15:14:54 -03:00
parent d21a9d1140
commit 016bfc756c
4 changed files with 203 additions and 23 deletions
+17 -22
View File
@@ -1,5 +1,4 @@
"""Missão 6 — Bloco A: Testes de Higiene (Migrations e Inventário dos 9 Datasets)."""
import subprocess
from pathlib import Path
from alembic.config import Config
from alembic.script import ScriptDirectory
@@ -15,28 +14,24 @@ def test_alembic_master_head_is_single():
assert heads == ["0035_cfop_ippt_write_mode"], f"Esperado head única 0035, obtido: {heads}"
def test_feature_branch_migration_chains_to_0034():
"""Garante que na branch feature/cfop-ippt-write a migração 0035 encadeia exatamente em 0034."""
# Obter conteúdo de 0035 na branch feature/cfop-ippt-write via git show
result = subprocess.run(
["git", "show", "feature/cfop-ippt-write:central/alembic/versions/0035_cfop_ippt_write_mode.py"],
capture_output=True,
text=True,
cwd=str(ROOT),
)
assert result.returncode == 0, f"Arquivo 0035_cfop_ippt_write_mode.py deve existir na branch feature/cfop-ippt-write: {result.stderr}"
content = result.stdout
assert 'revision = "0035_cfop_ippt_write_mode"' in content
assert 'down_revision = "0034_reference_data_registry"' in content
def test_migration_0035_chains_to_0034_and_0033_is_gone():
"""Garante que 0035 encadeia exatamente em 0034 e que a numeração antiga (0033) não existe mais.
# Verifica que 0033 não existe mais na branch
res_old = subprocess.run(
["git", "show", "feature/cfop-ippt-write:central/alembic/versions/0033_cfop_ippt_write_mode.py"],
capture_output=True,
text=True,
cwd=str(ROOT),
)
assert res_old.returncode != 0, "Migração 0033 não deve mais existir na branch feature"
Historicamente (Missão 8) este teste lia o arquivo via `git show
feature/cfop-ippt-write:...` para confirmar a correção *antes* do merge
daquela branch em master. A branch foi mesclada integralmente (0
commits exclusivos — confirmado na auditoria de consolidação do
monorepo) e master já carrega o resultado correto diretamente em
`central/alembic/versions/`, então a checagem passou a ler o estado
versionado atual em vez de depender de uma ref Git externa — necessário
para o teste funcionar também num clone que não tenha essa branch (como
o monorepo). A invariante validada é a mesma de antes.
"""
versions_dir = ROOT / "central" / "alembic" / "versions"
current = (versions_dir / "0035_cfop_ippt_write_mode.py").read_text(encoding="utf-8")
assert 'revision = "0035_cfop_ippt_write_mode"' in current
assert 'down_revision = "0034_reference_data_registry"' in current
assert not (versions_dir / "0033_cfop_ippt_write_mode.py").exists(), "Migração 0033 não deve mais existir"
def test_inventory_9_datasets_coverage():