From f68f3b23d7010b88930f6f12c52c37e0b667a1ac Mon Sep 17 00:00:00 2001 From: shibuiwilliam Date: Thu, 3 Aug 2023 09:20:40 +0900 Subject: [PATCH] add missing RemoteLangChainRetriever _get_relevant_documents test (#8628) # What - Add missing RemoteLangChainRetriever _get_relevant_documents test --------- Co-authored-by: Bagatur --- .../retrievers/test_remote_retriever.py | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 libs/langchain/tests/unit_tests/retrievers/test_remote_retriever.py diff --git a/libs/langchain/tests/unit_tests/retrievers/test_remote_retriever.py b/libs/langchain/tests/unit_tests/retrievers/test_remote_retriever.py new file mode 100644 index 0000000000..acae7bdff9 --- /dev/null +++ b/libs/langchain/tests/unit_tests/retrievers/test_remote_retriever.py @@ -0,0 +1,60 @@ +from typing import Any, Dict + +from pytest_mock import MockerFixture + +from langchain.retrievers import RemoteLangChainRetriever +from langchain.schema import Document + + +class MockResponse: + def __init__(self, json_data: Dict, status_code: int): + self.json_data = json_data + self.status_code = status_code + + def json(self) -> Dict: + return self.json_data + + +def mocked_requests_post(*args: Any, **kwargs: Any) -> MockResponse: + return MockResponse( + json_data={ + "response": [ + { + "page_content": "I like apples", + "metadata": { + "test": 0, + }, + }, + { + "page_content": "I like pineapples", + "metadata": { + "test": 1, + }, + }, + ] + }, + status_code=200, + ) + + +def test_RemoteLangChainRetriever_get_relevant_documents( + mocker: MockerFixture, +) -> None: + mocker.patch("requests.post", side_effect=mocked_requests_post) + + remote_langchain_retriever = RemoteLangChainRetriever( + url="http://localhost:8000", + ) + response = remote_langchain_retriever.get_relevant_documents("I like apples") + want = [ + Document(page_content="I like apples", metadata={"test": 0}), + Document(page_content="I like pineapples", metadata={"test": 1}), + ] + + assert len(response) == len(want) + for r, w in zip(response, want): + assert r.page_content == w.page_content + assert r.metadata == w.metadata + + +# TODO: _aget_relevant_documents test