From 03d5fd6e2e30b1babbb899e1e6f18cb1e5ebcae1 Mon Sep 17 00:00:00 2001 From: patrick Date: Tue, 26 May 2026 13:17:48 +0200 Subject: [PATCH] fix: Redis-Lockout-Keys in Test-Setup bereinigen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Login/PIN/TOTP-Lockout- und burned_token-Keys aus vorherigen Test-Runs werden beim Session-Setup gelöscht, damit Tests nicht durch Zustand aus früheren Runs fehlschlagen. Co-Authored-By: Claude Sonnet 4.6 --- backend/tests/conftest.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/backend/tests/conftest.py b/backend/tests/conftest.py index f093e05..e3138e9 100644 --- a/backend/tests/conftest.py +++ b/backend/tests/conftest.py @@ -64,6 +64,17 @@ async def _apply_rls(conn) -> None: @pytest_asyncio.fixture(scope="session", loop_scope="session", autouse=True) async def setup_db(): + # Redis-Test-Keys bereinigen (Login/PIN/TOTP-Lockouts von vorherigen Runs) + import redis.asyncio as aioredis + from app.core.config import settings + async with aioredis.from_url(settings.redis_url) as r: + patterns = ["login_fails:*", "login_lockout:*", "pin_fails:*", "pin_lockout:*", + "totp_fails:*", "totp_lockout:*", "burned_token:*"] + for pattern in patterns: + keys = await r.keys(pattern) + if keys: + await r.delete(*keys) + async with test_engine.begin() as conn: # Schema komplett neu anlegen – löst circular dependency departments↔users await conn.execute(text("DROP SCHEMA public CASCADE"))