feat: Task 20 — SQLAlchemy-Persistenz
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
"""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)
|
||||
Reference in New Issue
Block a user