Files
BSN-Livesystem/tests/conftest.py
T
2026-06-22 13:04:34 +00:00

45 lines
1.1 KiB
Python

"""Pytest-Konfiguration: Redis-Mock und Datenbank-Reset."""
from __future__ import annotations
import sys
import unittest.mock as mock
import fakeredis
import pytest
from src.database import Base, _engine
# --- Fake redis module that provides real-like exceptions ---
import redis as _real_redis
class _FakeRedis:
"""Wraps fakeredis with the correct redis.exceptions hierarchy."""
@staticmethod
def exceptions():
return _real_redis.exceptions
def __init__(self, *args, **kwargs):
self._conn = fakeredis.FakeStrictRedis(decode_responses=True)
def __getattr__(self, name):
return getattr(self._conn, name)
@property
def exceptions(self):
return _real_redis.exceptions
# Install BEFORE any app code runs
sys.modules["redis"] = mock.MagicMock()
sys.modules["redis"].Redis = _FakeRedis
sys.modules["redis"].exceptions = _real_redis.exceptions
@pytest.fixture(autouse=True)
def reset_db() -> None:
"""Setzt die Datenbank vor jedem Test zurueck."""
Base.metadata.drop_all(bind=_engine)
Base.metadata.create_all(bind=_engine)