43 lines
1.1 KiB
Python
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
|