From cb205a89f36e7598fd7b72ff33986ad5ffe1bf11 Mon Sep 17 00:00:00 2001 From: Colin Maudry Date: Fri, 10 Jul 2026 19:38:32 +0200 Subject: [PATCH] fix(tests): copier users.test.sqlite vers une base jetable pour les tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Les tests qui démarrent l'app complète (Selenium) écrivent dans la base users pointée par USERS_DB_PATH (comptes créés, vues sauvegardées...). Comme ce fichier était le fixture committé lui-même, chaque exécution de la suite le laissait modifié dans l'arbre de travail — gênant pour les commits et le nettoyage de worktree. Même schéma déjà utilisé pour DUCKDB_PATH et DATA_SCHEMA_CACHE dans ce fichier : le fixture committé est copié vers une base jetable gitignorée (tests/users.runtime.sqlite) au chargement de conftest.py, et USERS_DB_PATH pointe sur la copie. tests/users.test.sqlite reste désormais toujours propre. Co-Authored-By: Claude Opus 4.8 (1M context) --- .gitignore | 2 ++ tests/conftest.py | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/.gitignore b/.gitignore index 2b0a1b7..5a07f57 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,8 @@ users.sqlite *.sqlite-* !tests/*.sqlite !tests/**/*.sqlite +# Copie jetable de tests/users.test.sqlite, générée par tests/conftest.py +tests/users.runtime.sqlite # LLM plugins .superpowers/ diff --git a/tests/conftest.py b/tests/conftest.py index a1f7085..0a4b716 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -60,6 +60,16 @@ shutil.copyfile(_SCHEMA_FIXTURE, _SCHEMA_CACHE) os.environ["DATA_SCHEMA_CACHE"] = str(_SCHEMA_CACHE) os.environ.pop("DATA_SCHEMA_PATH", None) +# Base users partagée par les tests qui démarrent l'app complète (Selenium) : +# on COPIE le fixture committé vers une base jetable (users.runtime.sqlite, +# gitignorée) et on pointe USERS_DB_PATH dessus. Ainsi, toute écriture faite +# pendant les tests (comptes créés, vues sauvegardées, etc.) ne mute pas +# tests/users.test.sqlite (versionné, partagé pour toute la suite). +_USERS_DB_FIXTURE = Path(os.path.abspath("tests/users.test.sqlite")) +_USERS_DB_RUNTIME = Path(os.path.abspath("tests/users.runtime.sqlite")) +shutil.copyfile(_USERS_DB_FIXTURE, _USERS_DB_RUNTIME) +os.environ["USERS_DB_PATH"] = str(_USERS_DB_RUNTIME) + def _cleanup_db_artifacts() -> None: for artifact in (