ai-talent-finder-backend / tests /test_conversation_memory_phase2.py
ilyass yani
Deploiement backend dans HF Spaces
9df97a2
Raw
History Blame
2.42 kB
from __future__ import annotations
from ai_module.chatbot.conversation_memory import ConversationMemory
class FakeRedisClient:
def __init__(self):
self.lists = {}
self.hashes = {}
self.expirations = {}
def ping(self):
return True
def rpush(self, key, value):
self.lists.setdefault(key, []).append(value)
def ltrim(self, key, start, end):
items = self.lists.get(key, [])
self.lists[key] = items[start : end + 1 if end != -1 else None]
def expire(self, key, ttl):
self.expirations[key] = ttl
def hset(self, key, mapping):
self.hashes.setdefault(key, {}).update(mapping)
def hget(self, key, field):
return self.hashes.get(key, {}).get(field)
def delete(self, *keys):
for key in keys:
self.lists.pop(key, None)
self.hashes.pop(key, None)
def lrange(self, key, start, end):
items = self.lists.get(key, [])
return items[start : end + 1 if end != -1 else None]
def keys(self, pattern):
prefix = pattern[:-1] if pattern.endswith("*") else pattern
return [key for key in self.lists.keys() if key.startswith(prefix)]
def test_conversation_memory_keeps_sessions_isolated():
client = FakeRedisClient()
memory = ConversationMemory(client=client, ttl_seconds=120)
memory.add_message("session-a", "user", "bonjour")
memory.add_message("session-a", "assistant", "salut")
memory.add_message("session-b", "user", "hola")
memory.set_current_criteria("session-a", 12)
memory.set_current_criteria("session-b", 34)
assert memory.available() is True
assert [item["content"] for item in memory.get_history("session-a")] == ["bonjour", "salut"]
assert [item["content"] for item in memory.get_history("session-b")] == ["hola"]
assert memory.get_current_criteria("session-a") == 12
assert memory.get_current_criteria("session-b") == 34
assert set(memory.list_sessions()) == {"session-a", "session-b"}
def test_conversation_memory_clears_one_session_only():
client = FakeRedisClient()
memory = ConversationMemory(client=client)
memory.add_message("session-a", "user", "bonjour")
memory.add_message("session-b", "user", "hola")
memory.clear("session-a")
assert memory.get_history("session-a") == []
assert memory.get_history("session-b")[0]["content"] == "hola"