Files
odysseus/tests/test_active_document_clear.py
T

39 lines
1.3 KiB
Python

"""Issue #1160 — a closed document must not stay 'active' and leak into new chats.
Closing a document tab detaches it (session_id -> NULL) or deletes it, but the
in-memory active-document pointer was never cleared, so the last-resort doc
injection re-surfaced the closed doc in later, unrelated chats. The document
routes now call clear_active_document() on detach/delete; this pins that helper.
"""
from src.agent_tools.document_tools import (
set_active_document,
get_active_document,
clear_active_document
)
def test_clear_matching_id_resets_pointer():
set_active_document("doc-123")
assert get_active_document() == "doc-123"
assert clear_active_document("doc-123") is True
assert get_active_document() is None
def test_clear_non_matching_id_leaves_other_active_doc():
set_active_document("doc-abc")
# Closing a DIFFERENT document must not clobber the currently active one.
assert clear_active_document("doc-xyz") is False
assert get_active_document() == "doc-abc"
def test_clear_without_id_clears_unconditionally():
set_active_document("doc-abc")
assert clear_active_document() is True
assert get_active_document() is None
def test_clear_when_already_none_is_safe():
set_active_document(None)
assert clear_active_document("doc-123") is False
assert get_active_document() is None