34 lines
955 B
Python
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
|