mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-02 09:20:22 +08:00
42 lines
1.7 KiB
Python
42 lines
1.7 KiB
Python
|
|
from src.clients import redis_client as redis_client_module
|
||
|
|
from src.clients.redis_client import RedisClientManager, RedisState
|
||
|
|
|
||
|
|
|
||
|
|
def _seed_open_circuit(manager: RedisClientManager) -> None:
|
||
|
|
manager._circuit_open_until = 9999999999.0
|
||
|
|
manager._consecutive_failures = 5
|
||
|
|
manager._last_error = "boom"
|
||
|
|
|
||
|
|
|
||
|
|
def test_reset_redis_circuit_breaker_resets_both_clients() -> None:
|
||
|
|
old_global = redis_client_module._redis_manager
|
||
|
|
old_usage = redis_client_module._usage_queue_redis_manager
|
||
|
|
try:
|
||
|
|
global_manager = RedisClientManager(client_name="global")
|
||
|
|
usage_manager = RedisClientManager(client_name="usage")
|
||
|
|
_seed_open_circuit(global_manager)
|
||
|
|
_seed_open_circuit(usage_manager)
|
||
|
|
|
||
|
|
redis_client_module._redis_manager = global_manager
|
||
|
|
redis_client_module._usage_queue_redis_manager = usage_manager
|
||
|
|
|
||
|
|
assert redis_client_module.reset_redis_circuit_breaker() is True
|
||
|
|
assert global_manager.get_state() == RedisState.NOT_INITIALIZED
|
||
|
|
assert usage_manager.get_state() == RedisState.NOT_INITIALIZED
|
||
|
|
finally:
|
||
|
|
redis_client_module._redis_manager = old_global
|
||
|
|
redis_client_module._usage_queue_redis_manager = old_usage
|
||
|
|
|
||
|
|
|
||
|
|
def test_reset_redis_circuit_breaker_returns_false_when_uninitialized() -> None:
|
||
|
|
old_global = redis_client_module._redis_manager
|
||
|
|
old_usage = redis_client_module._usage_queue_redis_manager
|
||
|
|
try:
|
||
|
|
redis_client_module._redis_manager = None
|
||
|
|
redis_client_module._usage_queue_redis_manager = None
|
||
|
|
|
||
|
|
assert redis_client_module.reset_redis_circuit_breaker() is False
|
||
|
|
finally:
|
||
|
|
redis_client_module._redis_manager = old_global
|
||
|
|
redis_client_module._usage_queue_redis_manager = old_usage
|