band-aider-pub/band_aider/judgement/test_environment.py
2026-07-26 00:36:58 -07:00

43 lines
1.1 KiB
Python

# SPDX-FileCopyrightText: 2026 Art Sea LLC
#
# SPDX-License-Identifier: AGPL-3.0-only
from __future__ import annotations
import os
from typing import Mapping
from band_aider.judgement.repo_exec import DEFAULT_REPO_EXEC, RepoExec, resolve_repo_exec
TEST_ENV_VARIABLES_TO_CLEAR: tuple[str, ...] = (
"IONA_MODEL",
"IONA_BASE_URL",
"IONA_API_KEY",
"BAND_AIDER_MODEL",
"BAND_AIDER_API_BASE",
"BAND_AIDER_API_KEY",
"BAND_AIDER_MODEL_API_BASE",
"BAND_AIDER_MODEL_API_KEY",
"OPENAI_MODEL",
"OPENAI_API_BASE",
"OPENAI_BASE_URL",
"OPENAI_API_KEY",
"WEBUI_KEY",
)
def sanitized_test_environment(
source: Mapping[str, str] | None = None,
*,
repo_exec: RepoExec = DEFAULT_REPO_EXEC,
) -> dict[str, str]:
"""Return host test environment or only explicit overrides for a project adapter."""
adapter = resolve_repo_exec(repo_exec)
if not adapter.preserves_host_environment:
return {}
env = dict(os.environ if source is None else source)
for name in TEST_ENV_VARIABLES_TO_CLEAR:
env.pop(name, None)
return env