Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Os Environment Variables and LLM Calls Should be Mocked for Tests #28

Open
igooch opened this issue Feb 29, 2024 · 0 comments
Open

Os Environment Variables and LLM Calls Should be Mocked for Tests #28

igooch opened this issue Feb 29, 2024 · 0 comments

Comments

@igooch
Copy link
Contributor

igooch commented Feb 29, 2024

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 pytest because the OS environment variables are not in place.
  • api/vertex_*/src/test_main.py fail when running pytest because there is no mock for Google_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_response since they return a single text string response.text and 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:

  1. Create and activate a python virtual environment
  2. Run pytest in (myvirtualenv) me@me:~/GenAI-quickstart/genai/api/genai_api/src$ pytest -v

For example on the vertex_chat_api test:

  1. Create and activate a python virtual environment
  2. Run pytest in (myvirtualenv) me@me:~/GenAI-quickstart/genai/api/vertex_chat_api/src$ pytest -v (you'll notice this fails with warning that the 403 Vertex AI API has not been used in project)
  3. Change project_id_response.text to the name of your Google Cloud Project.
    project_id = project_id_response.text if project_id_response.status_code == 200 else "Unavailable"
  4. Run pytest again in (myvirtualenv) me@me:~/GenAI-quickstart/genai/api/vertex_chat_api/src$ pytest -v. Now the test fails with AssertionError: 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant