-
Notifications
You must be signed in to change notification settings - Fork 21
Open
Description
What happened?
When running pytest -v in a local virtualenv on the test_main.py files:
- genai_api/src/test_main.py fails when running
pytestbecause the OS environment variables are not in place. - api/vertex_*/src/test_main.py fail when running
pytestbecause there is no mock forGoogle_Cloud_GenAI, so the test tries to connect to a real project and call a LLM in that project. - api/vertex_*/src/test_main.py do not have the correct
expected_responsesince they return a single text stringresponse.textand not a json object{'mocked_key': 'mocked_value'}.
What you expected to happen:
Running the unit tests should not require setting up environment variables or calls to an external service.
How to reproduce it (as minimally and precisely as possible):
For the genai_api test:
- Create and activate a python virtual environment
- Run
pytestin(myvirtualenv) me@me:~/GenAI-quickstart/genai/api/genai_api/src$ pytest -v
For example on the vertex_chat_api test:
- Create and activate a python virtual environment
- Run
pytestin(myvirtualenv) me@me:~/GenAI-quickstart/genai/api/vertex_chat_api/src$ pytest -v(you'll notice this fails with warning that the403 Vertex AI API has not been used in project) - Change
project_id_response.textto the name of your Google Cloud Project.project_id = project_id_response.text if project_id_response.status_code == 200 else "Unavailable" - Run
pytestagain in(myvirtualenv) me@me:~/GenAI-quickstart/genai/api/vertex_chat_api/src$ pytest -v. Now the test fails withAssertionError: assert 'test response' == {'mocked_key': 'mocked_value'}.
Anything else we need to know?:
The value test response is coming from the actual call to the LLM. If you run the GenAI Quickstart cluster and navigate to the http://${EXT_IP}/genai_docs (following instructions on the main readme) and enter the same payload prompt as the test "prompt": "test prompt", the response is test response.
Metadata
Metadata
Assignees
Labels
No labels