mirror of
https://github.com/EvolutionAPI/adk-python.git
synced 2025-07-13 15:14:50 -06:00

* Move unit tests to root package. * Adds deps to "test" extra, and mark two broken tests in tests/unittests/auth/test_auth_handler.py * Adds github workflow * minor fix in lite_llm.py for python 3.9. * format pyproject.toml
74 lines
2.1 KiB
Python
74 lines
2.1 KiB
Python
# Copyright 2025 Google LLC
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
import os
|
|
|
|
from pytest import fixture
|
|
from pytest import FixtureRequest
|
|
from pytest import hookimpl
|
|
from pytest import Metafunc
|
|
|
|
_ENV_VARS = {
|
|
'GOOGLE_API_KEY': 'fake_google_api_key',
|
|
'GOOGLE_CLOUD_PROJECT': 'fake_google_cloud_project',
|
|
'GOOGLE_CLOUD_LOCATION': 'fake_google_cloud_location',
|
|
}
|
|
|
|
ENV_SETUPS = {
|
|
'GOOGLE_AI': {
|
|
'GOOGLE_GENAI_USE_VERTEXAI': '0',
|
|
**_ENV_VARS,
|
|
},
|
|
'VERTEX': {
|
|
'GOOGLE_GENAI_USE_VERTEXAI': '1',
|
|
**_ENV_VARS,
|
|
},
|
|
}
|
|
|
|
|
|
@fixture(autouse=True)
|
|
def env_variables(request: FixtureRequest):
|
|
# Set up the environment
|
|
env_name: str = request.param
|
|
envs = ENV_SETUPS[env_name]
|
|
original_env = {key: os.environ.get(key) for key in envs}
|
|
os.environ.update(envs)
|
|
|
|
yield # Run the test
|
|
|
|
# Restore the environment
|
|
for key in envs:
|
|
if (original_val := original_env.get(key)) is None:
|
|
os.environ.pop(key, None)
|
|
else:
|
|
os.environ[key] = original_val
|
|
|
|
|
|
@hookimpl(tryfirst=True)
|
|
def pytest_generate_tests(metafunc: Metafunc):
|
|
"""Generate test cases for each environment setup."""
|
|
if env_variables.__name__ in metafunc.fixturenames:
|
|
if not _is_explicitly_marked(env_variables.__name__, metafunc):
|
|
metafunc.parametrize(
|
|
env_variables.__name__, ENV_SETUPS.keys(), indirect=True
|
|
)
|
|
|
|
|
|
def _is_explicitly_marked(mark_name: str, metafunc: Metafunc) -> bool:
|
|
if hasattr(metafunc.function, 'pytestmark'):
|
|
for mark in metafunc.function.pytestmark:
|
|
if mark.name == 'parametrize' and mark.args[0] == mark_name:
|
|
return True
|
|
return False
|