from pathlib import Path from src.ircfa_interaction.memory_policy import ( contains_sensitive_memory_content, is_explicit_memory_request, ) def test_explicit_memory_request_requires_a_memory_intent(): assert is_explicit_memory_request("Please remember that I prefer Indonesian.") assert is_explicit_memory_request("Tolong simpan preferensi saya: jawaban ringkas.") assert not is_explicit_memory_request("Save this report as a PDF.") assert not is_explicit_memory_request("Use Indonesian for this answer.") def test_sensitive_content_is_not_eligible_for_memory(): assert contains_sensitive_memory_content("Remember this API key.") assert contains_sensitive_memory_content("Simpan password saya.") assert not contains_sensitive_memory_content("Remember that I prefer concise answers.") def test_stream_keeps_memory_policy_after_context_compaction(): stream_source = Path(__file__).parents[2] / "src" / "ircfa_interaction" / "stream2.py" source = stream_source.read_text() # One import and two prompt-build paths: normal and after compaction. assert source.count("MEMORY_POLICY_INSTRUCTIONS") >= 3