import pytest from pydantic import ValidationError def test_search_request_defaults(): from axon.models import SearchRequest req = SearchRequest(query="test") assert req.max_results == 10 assert req.search_depth == "basic" assert req.include_answer is False assert req.include_raw_content is False assert req.domains_whitelist == [] assert req.domains_blacklist == [] assert req.topic == "general" assert req.time_range is None def test_search_request_max_results_capped(): from axon.models import SearchRequest with pytest.raises(ValidationError): SearchRequest(query="test", max_results=21) def test_search_request_max_results_minimum(): from axon.models import SearchRequest with pytest.raises(ValidationError): SearchRequest(query="test", max_results=0) def test_search_result_fields(): from axon.models import SearchResult r = SearchResult(title="T", url="https://x.com", content="C", score=0.9) assert r.published_date is None assert r.favicon is None def test_extract_request(): from axon.models import ExtractRequest req = ExtractRequest(urls=["https://a.com", "https://b.com"]) assert req.include_images is False def test_research_request_defaults(): from axon.models import ResearchRequest req = ResearchRequest(query="topic") assert req.depth == "basic" assert req.output_format == "markdown"