Final_Assignment_Template / tests /test_search.py
yc1838
feat: add print logs for memory, search, and tool operations
f09a362
Raw
History Blame Contribute Delete
1.74 kB
from __future__ import annotations
from lilith_agent.tools import search as search_mod
def test_web_search_empty_without_tavily_key_includes_recovery_hint(monkeypatch):
monkeypatch.setattr(search_mod, "_ddg_search", lambda q, n: "No results.")
out = search_mod.web_search("obscure unlikely query", api_key="")
lower = out.lower()
assert "no results" in lower
assert "rephrase" in lower or "alternative keywords" in lower
assert "archive.org" in lower or "arxiv" in lower or "crossref" in lower
def test_web_search_prints_query_provider_and_result_preview(monkeypatch, capsys):
monkeypatch.setattr(
search_mod,
"_ddg_search",
lambda q, n: "- Result Title (https://example.com)\n Useful snippet",
)
search_mod.web_search("moon landing transcript", api_key="", max_results=3)
printed = capsys.readouterr().out
assert "[web_search] start provider=duckduckgo query='moon landing transcript' max_results=3" in printed
assert "[web_search] provider=duckduckgo status=success chars=" in printed
assert "Result Title" in printed
def test_web_search_empty_with_tavily_failure_includes_recovery_hint(monkeypatch):
monkeypatch.setattr(search_mod, "_ddg_search", lambda q, n: "No results.")
class _BoomClient:
def __init__(self, api_key):
pass
def search(self, **_kw):
raise RuntimeError("tavily offline")
monkeypatch.setattr(search_mod, "TavilyClient", _BoomClient)
out = search_mod.web_search("obscure unlikely query", api_key="fake-key")
lower = out.lower()
assert "rephrase" in lower or "alternative keywords" in lower
assert "archive.org" in lower or "arxiv" in lower or "crossref" in lower