From 7d9a59ee39b6a63126e54db5eb6686f46298c5d9 Mon Sep 17 00:00:00 2001 From: Juanan Pereira Date: Tue, 18 Mar 2025 15:12:11 +0100 Subject: [PATCH] Fix .python-version file Add environment variable check for SERPER_API_KEY in search_web function Add CLI tests --- .python-version | 26 +------------------------- main.py | 5 +++++ test_get_docs.py | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 43 insertions(+), 25 deletions(-) create mode 100644 test_get_docs.py diff --git a/.python-version b/.python-version index 1a9337c..97c6841 100644 --- a/.python-version +++ b/.python-version @@ -1,25 +1 @@ -The MIT License (MIT) -===================== - -Copyright © `` `` - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the “Software”), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. +3.13.2 \ No newline at end of file diff --git a/main.py b/main.py index f308140..2bbd707 100644 --- a/main.py +++ b/main.py @@ -18,6 +18,11 @@ } async def search_web(query: str) -> dict | None: + api_key = os.getenv("SERPER_API_KEY") + if not api_key: + raise ValueError("SERPER_API_KEY is not set in the environment variables.") + + payload = json.dumps({"q": query, "num": 2}) headers = { diff --git a/test_get_docs.py b/test_get_docs.py new file mode 100644 index 0000000..b5a53e7 --- /dev/null +++ b/test_get_docs.py @@ -0,0 +1,37 @@ +import asyncio +import os +from dotenv import load_dotenv + +# Import the function to test +from main import get_docs + +async def test_get_docs(): + """Test the get_docs function with different libraries and queries.""" + # Make sure we have the API key + load_dotenv() + if not os.getenv("SERPER_API_KEY"): + print("Error: SERPER_API_KEY environment variable is not set.") + return + + # Test cases + test_cases = [ + {"library": "langchain", "query": "Chroma DB"}, + {"library": "openai", "query": "function calling"}, + {"library": "llama-index", "query": "document retrieval"} + ] + + for case in test_cases: + library = case["library"] + query = case["query"] + + print(f"\nTesting get_docs with library={library}, query='{query}'") + try: + result = await get_docs(query=query, library=library) + # Print part of the result to avoid overwhelming output + print(f"Result: {result[:300]}...") + print(f"Result length: {len(result)} characters") + except Exception as e: + print(f"Error: {e}") + +if __name__ == "__main__": + asyncio.run(test_get_docs()) \ No newline at end of file