homelab-codex-ws/services/agent-system/runtime-materializer/tests/conftest.py

34 lines
955 B
Python

"""Stub the redis package so materializer.py can be imported without it installed.
materialize_from_api() (exercised by these tests) never touches redis at all —
only materialize() (the legacy direct-Redis path) does — but the module-level
`import redis` runs regardless, so a stub must be in place before import.
"""
from __future__ import annotations
import sys
import types
def _make_redis_stub() -> types.ModuleType:
mod = types.ModuleType("redis")
class _ConnectionError(Exception):
pass
class _ResponseError(Exception):
pass
exceptions_mod = types.ModuleType("redis.exceptions")
exceptions_mod.ConnectionError = _ConnectionError
exceptions_mod.ResponseError = _ResponseError
mod.exceptions = exceptions_mod
mod.Redis = object
return mod
if "redis" not in sys.modules:
stub = _make_redis_stub()
sys.modules["redis"] = stub
sys.modules["redis.exceptions"] = stub.exceptions