31 lines
1.0 KiB
Python
31 lines
1.0 KiB
Python
"""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()
|