Ctrl K
ComunidadGuías…

tests/test_audit_ci_contract.py

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
from importlib.util import module_from_spec, spec_from_file_location
from pathlib import Path

MODULE_PATH = Path(__file__).resolve().parents[1] / "scripts" / "audit_ci_contract.py"
spec = spec_from_file_location("audit_ci_contract", MODULE_PATH)
module = module_from_spec(spec)
assert spec and spec.loader
spec.loader.exec_module(module)


def test_contract_accepts_all_required_ci_stages(tmp_path):
    path = tmp_path / "ci.yml"
    path.write_text("\n".join(module._REQUIRED.values()), encoding="utf-8")
    assert module.missing_ci_contract(path) == ()


def test_contract_reports_missing_compose_validation(tmp_path):
    path = tmp_path / "ci.yml"
    text = "\n".join(value for name, value in module._REQUIRED.items() if name != "compose validation")
    path.write_text(text, encoding="utf-8")
    assert module.missing_ci_contract(path) == ("compose validation",)