Los tests en el CI (WK-CI-001)

El pipeline usa la plantilla común ci/python.gitlab-ci.yml de wordkers/platform/infra, con TEST_DEPS en .gitlab-ci.yml.

Qué se salta en el runner, y por qué

  • **Lo que toca la base snomed**: se salta si no hay SNOMED_DB_HOST (requiere_base en tests/conftest.py). La base nunca se expone a Internet.
  • **Lo que usa la librería red** (vive en dev/grafo, repo privado aparte): se salta si red no se puede importar. Se marca con requiere_red (conftest) o, en los módulos que la importan al cargarse (tests/_mesa_juguete.py, test_e1596_mesa.py, test_prospecto_mesa.py), con pytest.importorskip("red", reason=…), que salta el módulo entero con su motivo en vez de romper la colección.
  • *Por qué no se clona dev/grafo en el runner* (09/11/2026 11:33, TX-1661): dev/grafo es privado y su lista de tokens de CI solo admite al propio dev/grafo; ningún repo de la casa clona hermanos en CI. Abrirlo sería un cambio de permisos de GitLab por un beneficio pequeño: estos tests corren de verdad en Prepro y en el Mac, donde dev/grafo está al lado (WK_GRAFO, /opt/grafo o ../../dev/grafo).
  • Hasta el 09/11/2026 esos siete módulos importaban red sin guarda y el pipeline de main salía en rojo con «7 errors during collection».

Para ver los saltos y su motivo: python -m pytest -q -rs.

En esta página