1111
1212{description}
1313
14- REQUIRES: ANTHROPIC_API_KEY for real testing.
14+ REQUIRES: API_KEY (OpenAI or Anthropic) for real testing.
1515"""
1616
1717import os
1818import pytest
19- from exports. {agent_module} import default_agent
19+ from {agent_module} import default_agent
2020
2121
2222def _get_api_key():
23- """Get API key from CredentialManager or environment."""
23+ """Get API key from CredentialManager (Anthropic) or environment (Any)."""
24+ # 1. Try CredentialManager for Anthropic (the only provider it currently supports)
2425 try:
2526 from aden_tools.credentials import CredentialManager
2627 creds = CredentialManager()
2728 if creds.is_available("anthropic"):
2829 return creds.get("anthropic")
29- except ImportError:
30+ except ( ImportError, KeyError) :
3031 pass
31- return os.environ.get("ANTHROPIC_API_KEY")
32+
33+ # 2. Fallback to standard environment variables for OpenAI and others
34+ return (
35+ os.environ.get("OPENAI_API_KEY") or
36+ os.environ.get("ANTHROPIC_API_KEY") or
37+ os.environ.get("CEREBRAS_API_KEY") or
38+ os.environ.get("GROQ_API_KEY")
39+ )
3240
3341
3442# Skip all tests if no API key and not in mock mode
3543pytestmark = pytest.mark.skipif(
3644 not _get_api_key() and not os.environ.get("MOCK_MODE"),
37- reason="API key required. Set ANTHROPIC_API_KEY or use MOCK_MODE=1."
45+ reason="API key required. Please set OPENAI_API_KEY, ANTHROPIC_API_KEY, or use MOCK_MODE=1."
3846)
39-
40-
4147'''
4248
4349# Template for conftest.py with shared fixtures
@@ -48,15 +54,21 @@ def _get_api_key():
4854
4955
5056def _get_api_key():
51- """Get API key from CredentialManager or environment."""
57+ """Get API key from CredentialManager (Anthropic) or environment (Any) ."""
5258 try:
5359 from aden_tools.credentials import CredentialManager
5460 creds = CredentialManager()
5561 if creds.is_available("anthropic"):
5662 return creds.get("anthropic")
57- except ImportError:
63+ except ( ImportError, KeyError) :
5864 pass
59- return os.environ.get("ANTHROPIC_API_KEY")
65+
66+ return (
67+ os.environ.get("OPENAI_API_KEY") or
68+ os.environ.get("ANTHROPIC_API_KEY") or
69+ os.environ.get("CEREBRAS_API_KEY") or
70+ os.environ.get("GROQ_API_KEY")
71+ )
6072
6173
6274@pytest.fixture
@@ -72,25 +84,17 @@ def check_api_key():
7284 if os.environ.get("MOCK_MODE"):
7385 print("\\ n⚠️ Running in MOCK MODE - structure validation only")
7486 print(" This does NOT test LLM behavior or agent quality")
75- print(" Set ANTHROPIC_API_KEY for real testing\\ n")
87+ print(" Set OPENAI_API_KEY or ANTHROPIC_API_KEY for real testing\\ n")
7688 else:
7789 pytest.fail(
78- "\\ n❌ ANTHROPIC_API_KEY not set !\\ n\\ n"
90+ "\\ n❌ No API key found !\\ n\\ n"
7991 "Real testing requires an API key. Choose one:\\ n"
80- "1. Set API key (RECOMMENDED):\\ n"
92+ "1. Set OpenAI key:\\ n"
93+ " export OPENAI_API_KEY='your-key-here'\\ n"
94+ "2. Set Anthropic key:\\ n"
8195 " export ANTHROPIC_API_KEY='your-key-here'\\ n"
82- "2 . Run structure validation only:\\ n"
96+ "3 . Run structure validation only:\\ n"
8397 " MOCK_MODE=1 pytest exports/{agent_name}/tests/\\ n\\ n"
8498 "Note: Mock mode does NOT validate agent behavior or quality."
8599 )
86-
87-
88- @pytest.fixture
89- def sample_inputs():
90- """Sample inputs for testing."""
91- return {{
92- "simple": {{"query": "test"}},
93- "complex": {{"query": "detailed multi-step query", "depth": 3}},
94- "edge_case": {{"query": ""}},
95- }}
96100'''
0 commit comments