Persist OAuth/setup tokens in ANTHROPIC_TOKEN instead of ANTHROPIC_API_KEY. Reserve ANTHROPIC_API_KEY for regular Console API keys. Changes: - anthropic_adapter: reorder resolve_anthropic_token() priority — ANTHROPIC_TOKEN first, ANTHROPIC_API_KEY as legacy fallback - config: add save_anthropic_oauth_token() / save_anthropic_api_key() helpers that clear the opposing slot to prevent priority conflicts - config: show_config() prefers ANTHROPIC_TOKEN for display - setup: OAuth login and pasted setup-tokens write to ANTHROPIC_TOKEN - setup: API key entry writes to ANTHROPIC_API_KEY and clears ANTHROPIC_TOKEN - main: same fixes in _run_anthropic_oauth_flow() and _model_flow_anthropic() - main: _has_any_provider_configured() checks ANTHROPIC_TOKEN - doctor: use _is_oauth_token() for correct auth method validation - runtime_provider: updated error message - run_agent: simplified client init to use resolve_anthropic_token() - run_agent: updated 401 troubleshooting messages - status: prefer ANTHROPIC_TOKEN in status display - tests: updated priority test, added persistence helper tests Cherry-picked from PR #1141 by kshitijk4poor, rebased onto current main with unrelated changes (web_policy config, blocklist CLI) removed. Co-authored-by: kshitijk4poor <kshitijk4poor@users.noreply.github.com>
32 lines
996 B
Python
32 lines
996 B
Python
"""Tests for Anthropic credential persistence helpers."""
|
|
|
|
from hermes_cli.config import load_env
|
|
|
|
|
|
def test_save_anthropic_oauth_token_uses_token_slot_and_clears_api_key(tmp_path, monkeypatch):
|
|
home = tmp_path / "hermes"
|
|
home.mkdir()
|
|
monkeypatch.setenv("HERMES_HOME", str(home))
|
|
|
|
from hermes_cli.config import save_anthropic_oauth_token
|
|
|
|
save_anthropic_oauth_token("sk-ant-oat01-test-token")
|
|
|
|
env_vars = load_env()
|
|
assert env_vars["ANTHROPIC_TOKEN"] == "sk-ant-oat01-test-token"
|
|
assert env_vars["ANTHROPIC_API_KEY"] == ""
|
|
|
|
|
|
def test_save_anthropic_api_key_uses_api_key_slot_and_clears_token(tmp_path, monkeypatch):
|
|
home = tmp_path / "hermes"
|
|
home.mkdir()
|
|
monkeypatch.setenv("HERMES_HOME", str(home))
|
|
|
|
from hermes_cli.config import save_anthropic_api_key
|
|
|
|
save_anthropic_api_key("sk-ant-api03-test-key")
|
|
|
|
env_vars = load_env()
|
|
assert env_vars["ANTHROPIC_API_KEY"] == "sk-ant-api03-test-key"
|
|
assert env_vars["ANTHROPIC_TOKEN"] == ""
|