diff --git a/tests/conftest.py b/tests/conftest.py index fc0c739..bd27449 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -54,16 +54,30 @@ def _resolve_registry_root() -> Path: (Desktop/apps/graph_explorer/tests) NO hay registry — usamos el propio app dir como fallback. Los tests no leen registry.db; solo se pasa registry_root via ctx por compatibilidad con run.py. + + Override via env var `FN_REGISTRY_ROOT` para escenarios git-worktree + donde el app vive fuera del arbol normal del registry. """ - # Marker fiable: fichero `cmd/fn/main.go` o `registry.db`. + # Override explicito (util para git worktrees fuera de fn_registry/). + env = os.environ.get("FN_REGISTRY_ROOT") + if env: + ep = Path(env) + if ep.exists(): + return ep + # Marker fiable: fichero `cmd/fn/main.go` (mas estricto que registry.db + # solo, que podria ser un .db vacio que arrastra otro entorno). p = APP_DIR_SRC for _ in range(8): - if (p / "cmd" / "fn" / "main.go").exists() or \ - (p / "registry.db").exists(): + if (p / "cmd" / "fn" / "main.go").exists(): return p if p.parent == p: break p = p.parent + # Fallback: ubicaciones tipicas en el sistema del usuario cuando se + # trabaja en un worktree (ramas issue/* clonadas en ~/wt/). + for cand in (Path.home() / "fn_registry",): + if (cand / "cmd" / "fn" / "main.go").exists(): + return cand # Sin registry: usa el app dir como pseudo-root. Los tests funcionan # igual mientras no haya un test que importe paquetes del registry. return APP_DIR_SRC