File size: 1,151 Bytes
6d86412
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from __future__ import annotations

from backend.app.db import redis_client
from backend.app.services.session_store import create_session, list_sessions


def test_in_memory_redis_fallback_is_singleton(monkeypatch) -> None:
    monkeypatch.setattr("redis.Redis.from_url", lambda *args, **kwargs: (_ for _ in ()).throw(RuntimeError("offline")))
    monkeypatch.setattr(redis_client, "_fallback_mode", False)
    monkeypatch.setattr(redis_client, "_redis_singleton", None)

    first = redis_client.get_redis_client()
    second = redis_client.get_redis_client()

    assert first is second


def test_in_memory_redis_fallback_preserves_session_index(monkeypatch) -> None:
    monkeypatch.setattr("redis.Redis.from_url", lambda *args, **kwargs: (_ for _ in ()).throw(RuntimeError("offline")))
    monkeypatch.setattr(redis_client, "_fallback_mode", False)
    monkeypatch.setattr(redis_client, "_redis_singleton", None)

    create_session("fallback-visible", "HCP-05-010", cluster_id=5)

    sessions = list_sessions(limit=10)
    assert [session["session_id"] for session in sessions] == ["fallback-visible"]
    assert sessions[0]["cluster_id"] == 5