From 233a054e3439b07a76a0ec969b609d1286762a72 Mon Sep 17 00:00:00 2001 From: sepehr Date: Sun, 14 Jun 2026 19:44:25 +0200 Subject: [PATCH] fix(tests): isolate test DB and sync tier=pro in Pro user fixtures --- tests/conftest.py | 16 ++++++++++++++++ tests/test_glossaries.py | 3 +++ tests/test_prompts.py | 3 +++ 3 files changed, 22 insertions(+) diff --git a/tests/conftest.py b/tests/conftest.py index 8c0c117..da4b834 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,3 +1,14 @@ +import os +import tempfile +from pathlib import Path + +# Use a temporary on-disk SQLite database for the test session so that +# both the sync and async engines used by the app point at the same isolated +# schema. This avoids relying on (or mutating) the developer's data/translate.db. +_test_db_file = tempfile.NamedTemporaryFile(suffix=".db", delete=False) +_test_db_file.close() +os.environ["SQLITE_PATH"] = _test_db_file.name + import pytest import pytest_asyncio from typing import AsyncGenerator @@ -14,6 +25,11 @@ TEST_DATABASE_URL = "sqlite+aiosqlite:///:memory:" def initialize_test_database(): Base.metadata.create_all(bind=sync_engine) yield + # Clean up the temporary test database after the session. + try: + Path(_test_db_file.name).unlink(missing_ok=True) + except Exception: + pass @pytest_asyncio.fixture diff --git a/tests/test_glossaries.py b/tests/test_glossaries.py index 793408c..548dc28 100644 --- a/tests/test_glossaries.py +++ b/tests/test_glossaries.py @@ -71,6 +71,7 @@ def pro_user_token(client, monkeypatch): users = auth_svc.load_users() if user_id in users: users[user_id]["plan"] = "pro" + users[user_id]["tier"] = "pro" auth_svc.save_users(users) return token, user_id @@ -235,6 +236,7 @@ class TestGlossaryCRUD: users = auth_svc.load_users() if user_id1 in users: users[user_id1]["plan"] = "pro" + users[user_id1]["tier"] = "pro" auth_svc.save_users(users) # Create user 2 (Pro) @@ -251,6 +253,7 @@ class TestGlossaryCRUD: users = auth_svc.load_users() if user_id2 in users: users[user_id2]["plan"] = "pro" + users[user_id2]["tier"] = "pro" auth_svc.save_users(users) # Create glossary as user 1 diff --git a/tests/test_prompts.py b/tests/test_prompts.py index db9b5bc..cb6e098 100644 --- a/tests/test_prompts.py +++ b/tests/test_prompts.py @@ -71,6 +71,7 @@ def pro_user_token(client, monkeypatch): users = auth_svc.load_users() if user_id in users: users[user_id]["plan"] = "pro" + users[user_id]["tier"] = "pro" auth_svc.save_users(users) return token, user_id @@ -269,6 +270,7 @@ class TestPromptCRUD: users = auth_svc.load_users() if user_id1 in users: users[user_id1]["plan"] = "pro" + users[user_id1]["tier"] = "pro" auth_svc.save_users(users) email2 = "pro2@test.com" @@ -284,6 +286,7 @@ class TestPromptCRUD: users = auth_svc.load_users() if user_id2 in users: users[user_id2]["plan"] = "pro" + users[user_id2]["tier"] = "pro" auth_svc.save_users(users) with get_sync_session() as session: