"""Comprueba que motor.api cumple el contrato que usa la aplicación.""" from pathlib import Path import cadquery as cq from motor.api import Estado, Gravedad, Resultado, exportar, procesar CATALOGO = Path(__file__).parent / "catalogo" def test_procesar_devuelve_un_resultado_valido(): r = procesar(CATALOGO / "CUBE01" / "plano.dxf") assert isinstance(r, Resultado) assert r.estado in Estado assert all(a.gravedad in Gravedad for a in r.avisos) def test_cube01_tiene_el_volumen_esperado(): r = procesar(CATALOGO / "CUBE01" / "plano.dxf") # Cubo de 200 mm menos el escalón (100^3) y el chaflán (100^3 / 2) assert abs(r.solido.Volume() - 6_500_000) < 1 def test_exportar_step_y_stl(tmp_path): r = procesar(CATALOGO / "CUBE01" / "plano.dxf") for ext in (".step", ".stl"): exportar(r.solido, tmp_path / f"pieza{ext}") assert (tmp_path / f"pieza{ext}").stat().st_size > 0 releida = cq.importers.importStep(str(tmp_path / "pieza.step")).val() assert releida.isValid()