#!/usr/bin/env python3 """Regenera `src/sowai_fiscal/goldens/caso_*.expected.xml` a partir dos `caso_*.input.json` correspondentes. Uso ÚNICO hoje (fixar o corpus golden, Task 2 do plano F1) e sempre que uma NT mudar o leiaute DE PROPÓSITO -- nunca para "corrigir" um teste vermelho sem entender por que o XML mudou. uv run python scripts/gen_goldens.py """ from pathlib import Path from sowai_fiscal.golden_helpers import dados_from_json, serialize_infnfe _GOLDENS_DIR = Path(__file__).resolve().parent.parent / "src" / "sowai_fiscal" / "goldens" def main() -> None: inputs = sorted(_GOLDENS_DIR.glob("caso_*.input.json")) if not inputs: raise SystemExit(f"nenhum caso_*.input.json encontrado em {_GOLDENS_DIR}") for input_path in inputs: expected_path = input_path.with_name(input_path.name.replace(".input.json", ".expected.xml")) dados = dados_from_json(input_path) xml_bytes = serialize_infnfe(dados) expected_path.write_bytes(xml_bytes) print(f"{input_path.name} -> {expected_path.name} ({len(xml_bytes)} bytes)") if __name__ == "__main__": main()