Skip to content

Commit f251544

Browse files
committed
fix: saltar tests de TestDimensionCurricular cuando docs/legado/ no existe
El CI de GitHub Actions falla en un checkout limpio porque docs/legado/planeacion_2023_2024/Programa_de_Asignatura_..._extracted.txt está intencionalmente en .gitignore (material histórico con derechos de terceros, nunca se publica en GitHub) -- ese archivo simplemente no existe en el runner. Se marcan test_parse_programa_oficial_extrae_subtemas_por_unidad y test_detecta_subtema_faltante con skipif condicionado a la existencia del archivo, en vez de mockear su contenido (perdería el valor de regresión contra el documento oficial real) o usar xfail (semántica incorrecta: no es un bug conocido, es un artefacto ausente por diseño). Verificado en ambos escenarios: con el archivo presente (local) los 3 tests de la clase pasan sin skip; simulando su ausencia, los 2 tests afectados se saltan con motivo explícito y el tercero sigue pasando. Revisado por python-reviewer sin hallazgos CRITICAL/HIGH.
1 parent 381e3a6 commit f251544

1 file changed

Lines changed: 19 additions & 8 deletions

File tree

‎tests/test_content_auditor_agent.py‎

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -258,23 +258,34 @@ def test_no_marca_hallazgo_de_analogia_si_existe(
258258
)
259259

260260

261+
_PROGRAMA_OFICIAL_PATH = (
262+
Path(__file__).parent.parent
263+
/ "docs"
264+
/ "legado"
265+
/ "planeacion_2023_2024"
266+
/ "Programa_de_Asignatura_Logica_Programacion_IA_v2_extracted.txt"
267+
)
268+
269+
_SIN_PROGRAMA_OFICIAL = not _PROGRAMA_OFICIAL_PATH.exists()
270+
_MOTIVO_SKIP_PROGRAMA_OFICIAL = (
271+
"docs/legado/ está en .gitignore (material histórico con derechos de "
272+
"terceros, nunca se publica en GitHub) -- estos tests solo pueden "
273+
"correr localmente, donde el archivo sí existe."
274+
)
275+
276+
261277
class TestDimensionCurricular:
278+
@pytest.mark.skipif(_SIN_PROGRAMA_OFICIAL, reason=_MOTIVO_SKIP_PROGRAMA_OFICIAL)
262279
def test_parse_programa_oficial_extrae_subtemas_por_unidad(self):
263280
from src.multiagent_core.content_auditor_agent import _parse_programa_oficial
264281

265-
programa_path = (
266-
Path(__file__).parent.parent
267-
/ "docs"
268-
/ "legado"
269-
/ "planeacion_2023_2024"
270-
/ "Programa_de_Asignatura_Logica_Programacion_IA_v2_extracted.txt"
271-
)
272-
mapeo = _parse_programa_oficial(programa_path)
282+
mapeo = _parse_programa_oficial(_PROGRAMA_OFICIAL_PATH)
273283

274284
assert 6 in mapeo
275285
assert any("lambda" in s.lower() for s in mapeo[6]["subtemas"])
276286
assert "Semanas 11-13" in mapeo[6]["semanas"] or "11-13" in mapeo[6]["semanas"]
277287

288+
@pytest.mark.skipif(_SIN_PROGRAMA_OFICIAL, reason=_MOTIVO_SKIP_PROGRAMA_OFICIAL)
278289
def test_detecta_subtema_faltante(
279290
self, auditor: ContentAuditorAgent, tmp_path: Path
280291
):

0 commit comments

Comments
 (0)