Home / Class/ TestPerplexitySearchAPI Class — langchain Architecture

TestPerplexitySearchAPI Class — langchain Architecture

Architecture documentation for the TestPerplexitySearchAPI class in test_search_api.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  d78765a9_7867_d79b_0b89_be727a8e91fb["TestPerplexitySearchAPI"]
  38b769c4_c07d_3256_6870_9c6ee6931708["Document"]
  d78765a9_7867_d79b_0b89_be727a8e91fb -->|extends| 38b769c4_c07d_3256_6870_9c6ee6931708
  c5267542_da59_a15f_9195_5529bb1e2b23["test_search_api.py"]
  d78765a9_7867_d79b_0b89_be727a8e91fb -->|defined in| c5267542_da59_a15f_9195_5529bb1e2b23
  ef480cfa_92c0_caaf_e1a8_71522d4f6e1e["test_search_retriever_basic()"]
  d78765a9_7867_d79b_0b89_be727a8e91fb -->|method| ef480cfa_92c0_caaf_e1a8_71522d4f6e1e
  34d2f1bd_0db0_c293_5019_be9d4a16ba56["test_search_retriever_with_filters()"]
  d78765a9_7867_d79b_0b89_be727a8e91fb -->|method| 34d2f1bd_0db0_c293_5019_be9d4a16ba56
  9ee2bdfb_40c1_d85c_5965_bf5b367efe83["test_search_tool_basic()"]
  d78765a9_7867_d79b_0b89_be727a8e91fb -->|method| 9ee2bdfb_40c1_d85c_5965_bf5b367efe83
  4b0f3807_2484_2a96_0113_1c0a5dfd015d["test_search_tool_multi_query()"]
  d78765a9_7867_d79b_0b89_be727a8e91fb -->|method| 4b0f3807_2484_2a96_0113_1c0a5dfd015d

Relationship Graph

Source Code

libs/partners/perplexity/tests/integration_tests/test_search_api.py lines 12–56

class TestPerplexitySearchAPI:
    def test_search_retriever_basic(self) -> None:
        """Test basic search with retriever."""
        retriever = PerplexitySearchRetriever(k=3)
        docs = retriever.invoke("What is the capital of France?")
        assert len(docs) > 0
        assert isinstance(docs[0], Document)
        assert "Paris" in docs[0].page_content
        assert docs[0].metadata["title"]
        assert docs[0].metadata["url"]

    def test_search_retriever_with_filters(self) -> None:
        """Test search with filters."""
        # Search for recent news (recency filter)
        retriever = PerplexitySearchRetriever(
            k=3, search_recency_filter="month", search_domain_filter=["wikipedia.org"]
        )
        docs = retriever.invoke("Python programming language")
        assert len(docs) > 0
        for doc in docs:
            assert "wikipedia.org" in doc.metadata["url"]

    def test_search_tool_basic(self) -> None:
        """Test basic search with tool."""
        tool = PerplexitySearchResults(max_results=3)
        results = tool.invoke("Who won the 2024 Super Bowl?")

        # BaseTool.invoke calls _run. If return_direct is False (default),
        # it returns the output of _run, which is a list of dicts.
        assert isinstance(results, list)
        assert len(results) > 0
        assert "title" in results[0]
        assert "url" in results[0]
        assert "snippet" in results[0]

    def test_search_tool_multi_query(self) -> None:
        """Test search tool with multiple queries."""
        tool = PerplexitySearchResults(max_results=2)
        queries = ["Apple stock price", "Microsoft stock price"]
        # Pass input as dict to avoid BaseTool validation error with list
        results = tool.invoke({"query": queries})

        assert isinstance(results, list)
        # Should have results for both (combined)
        assert len(results) > 0

Extends

Frequently Asked Questions

What is the TestPerplexitySearchAPI class?
TestPerplexitySearchAPI is a class in the langchain codebase, defined in libs/partners/perplexity/tests/integration_tests/test_search_api.py.
Where is TestPerplexitySearchAPI defined?
TestPerplexitySearchAPI is defined in libs/partners/perplexity/tests/integration_tests/test_search_api.py at line 12.
What does TestPerplexitySearchAPI extend?
TestPerplexitySearchAPI extends Document.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free