test: make consolidated workspace self-contained
This commit is contained in:
@@ -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():
|
||||
|
||||
Reference in New Issue
Block a user