study-buddy / tests /test_research_context_tools.py
GitHub Actions
deploy b3d187d69e5df10bb2ec396e89f539f853465a06
14184e3
Raw
History Blame Contribute Delete
2.61 kB
from app.services.research_context_tools import plan_research_context_tools
def test_lazy_context_skips_tools_for_casual_turn():
plan = plan_research_context_tools(
agent_id="chat",
query="can we think aloud for a minute?",
selection_text="",
knowledge_mode="net_support",
)
assert not plan.use_project_context
assert not plan.use_memory_context
assert not plan.use_web_search
def test_greeting_uses_only_tiny_profile_name_memory():
plan = plan_research_context_tools(
agent_id="chat",
query="hi",
selection_text="",
knowledge_mode="net_support",
)
assert plan.use_memory_context
assert plan.memory_mode == "profile"
assert plan.memory_query == "preferred name"
assert not plan.use_project_context
assert not plan.use_web_search
def test_lazy_context_fetches_project_context_for_paper_questions():
plan = plan_research_context_tools(
agent_id="pair_buddy",
query="What papers are uploaded in this project?",
selection_text="",
knowledge_mode="net_support",
)
assert plan.use_project_context
assert not plan.use_web_search
def test_lazy_context_fetches_memory_for_profile_questions():
plan = plan_research_context_tools(
agent_id="chat",
query="What do you remember about my learning style?",
selection_text="",
knowledge_mode="net_support",
)
assert plan.use_memory_context
assert plan.memory_mode == "profile"
assert not plan.use_project_context
def test_vague_last_time_memory_request_asks_for_time_anchor_first():
plan = plan_research_context_tools(
agent_id="chat",
query="what did I study last time?",
selection_text="",
knowledge_mode="net_support",
)
assert plan.needs_memory_clarification
assert not plan.use_memory_context
assert "date" in plan.clarification_prompt.lower()
def test_lazy_context_fetches_web_for_current_external_questions():
plan = plan_research_context_tools(
agent_id="pair_buddy",
query="What is the latest DeepSeek model?",
selection_text="",
knowledge_mode="net_support",
)
assert plan.use_web_search
assert not plan.use_project_context
def test_content_only_uses_project_context_instead_of_web():
plan = plan_research_context_tools(
agent_id="chat",
query="Explain attention heads",
selection_text="",
knowledge_mode="content_only",
)
assert plan.use_project_context
assert not plan.use_web_search