diff --git a/tests/test_models.py b/tests/test_models.py new file mode 100644 index 0000000..790437d --- /dev/null +++ b/tests/test_models.py @@ -0,0 +1,47 @@ +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"