Spaces:
Sleeping
Sleeping
| """Configuración de las pruebas unitarias de los scripts de evaluación. | |
| Los scripts de `evals/` son ejecutables, no un paquete instalado: cada uno se apaña su | |
| `sys.path` al arrancar (backend + el propio directorio) para poder importar `app.*` y | |
| `judge.*`. Aquí se hace lo mismo antes de importarlos, para que las pruebas corran igual | |
| desde `backend/` (donde vive pytest) que desde la raíz. | |
| """ | |
| from __future__ import annotations | |
| import os | |
| import sys | |
| import tempfile | |
| from pathlib import Path | |
| EVALS = Path(__file__).resolve().parents[1] | |
| RAIZ = EVALS.parent | |
| for ruta in (str(RAIZ / "backend"), str(EVALS)): | |
| if ruta not in sys.path: | |
| sys.path.insert(0, ruta) | |
| # Igual que backend/tests/conftest.py: la config se cachea con lru_cache, así que estas | |
| # variables tienen que existir ANTES de que cualquier import arrastre `app.config`. Y por el | |
| # mismo motivo que allí, el `.env` del desarrollador queda fuera: estas pruebas también corren | |
| # en CI, donde no existe. | |
| os.environ["MORPHOS_IGNORAR_ENV_FILE"] = "1" | |
| _TMP = Path(tempfile.mkdtemp(prefix="morphos_evals_test_")) | |
| os.environ.setdefault("MORPHOS_DB_PATH", str(_TMP / "test.db")) | |
| os.environ.setdefault("MORPHOS_SESSION_SECRET", "x" * 40) | |
| os.environ.setdefault("MORPHOS_ENTORNO", "dev") | |