Download tests_python/test_agent.py from build-small-hackathon/agent-swarm-workbench: direct link, hf CLI and curl.
- Browser
- Download file 4.45 kB
-
https://huggingface.co/spaces/build-small-hackathon/agent-swarm-workbench/resolve/main/tests_python/test_agent.py
- Command line
-
hf download hf://spaces/build-small-hackathon/agent-swarm-workbench/tests_python/test_agent.py
-
curl -L -o test_agent.py https://huggingface.co/spaces/build-small-hackathon/agent-swarm-workbench/resolve/main/tests_python/test_agent.py
4.45 kB
| import os | |
| import pytest | |
| from arena.agent import _load_dotenv, _normalize_openrouter_model, create_session | |
| from arena.model_catalog import ModelProviderConfig | |
| from arena.model_provider import create_chat_model | |
| def test_create_session_returns_local_provider_with_env() -> None: | |
| os.environ["DEEPAGENT_SANDBOX_PROVIDER"] = "local" | |
| try: | |
| session = create_session("test-session") | |
| finally: | |
| os.environ.pop("DEEPAGENT_SANDBOX_PROVIDER", None) | |
| assert session.provider == "local" | |
| assert session.thread_id == "test-session" | |
| assert session.workspace_dir == "/workspace" | |
| session.close() | |
| def test_session_creates_composite_backend() -> None: | |
| os.environ["DEEPAGENT_SANDBOX_PROVIDER"] = "local" | |
| try: | |
| session = create_session("test-composite") | |
| finally: | |
| os.environ.pop("DEEPAGENT_SANDBOX_PROVIDER", None) | |
| from deepagents.backends import CompositeBackend | |
| assert isinstance(session.backend, CompositeBackend) | |
| assert session.workspace_dir == "/workspace" | |
| assert session.agent is not None | |
| session.close() | |
| def test_disallowed_provider_raises() -> None: | |
| os.environ["DEEPAGENT_SANDBOX_PROVIDER"] = "nonexistent" | |
| try: | |
| with pytest.raises(ValueError, match="Unsupported sandbox provider"): | |
| create_session("test-bad") | |
| finally: | |
| os.environ.pop("DEEPAGENT_SANDBOX_PROVIDER", None) | |
| def test_default_model_is_used_when_not_set() -> None: | |
| os.environ["DEEPAGENT_SANDBOX_PROVIDER"] = "local" | |
| os.environ.pop("DEEPAGENT_MODEL", None) | |
| try: | |
| session = create_session("test-default-model") | |
| finally: | |
| os.environ.pop("DEEPAGENT_SANDBOX_PROVIDER", None) | |
| assert session.agent is not None | |
| session.close() | |
| def test_openrouter_model_normalizes_legacy_prefixes(configured: str, expected: str) -> None: | |
| assert _normalize_openrouter_model(configured) == expected | |
| def test_create_chat_model_uses_custom_openai_compatible_endpoint() -> None: | |
| model = create_chat_model( | |
| ModelProviderConfig( | |
| provider="custom", | |
| model="custom-model", | |
| api_key="custom-key", | |
| base_url="https://example.test/v1", | |
| ) | |
| ) | |
| assert getattr(model, "model_name", getattr(model, "model", "")) == "custom-model" | |
| assert str(model.model_dump()["openai_api_base"]).rstrip("/") == "https://example.test/v1" | |
| def test_create_chat_model_uses_openrouter_deepagents_supported_provider() -> None: | |
| model = create_chat_model( | |
| ModelProviderConfig( | |
| provider="openrouter", | |
| model="qwen/qwen3.5-9b", | |
| api_key="user-key", | |
| ) | |
| ) | |
| assert type(model).__name__ == "ChatOpenRouter" | |
| assert getattr(model, "model_name", getattr(model, "model", "")) == "qwen/qwen3.5-9b" | |
| def test_create_chat_model_uses_cached_local_model_without_endpoint() -> None: | |
| model = create_chat_model( | |
| ModelProviderConfig( | |
| provider="local", | |
| model="unsloth/gemma-4-12B-it-qat-GGUF", | |
| ) | |
| ) | |
| assert type(model).__name__ == "CachedLocalChatModel" | |
| assert model.model_id == "unsloth/gemma-4-12B-it-qat-GGUF" | |
| def test_create_chat_model_uses_openai_compatible_local_endpoint() -> None: | |
| model = create_chat_model( | |
| ModelProviderConfig( | |
| provider="local", | |
| model="local-model", | |
| base_url="http://127.0.0.1:8000/v1", | |
| ) | |
| ) | |
| assert type(model).__name__ == "ChatOpenAI" | |
| assert str(model.model_dump()["openai_api_base"]).rstrip("/") == "http://127.0.0.1:8000/v1" | |
| def test_per_run_openrouter_config_does_not_fall_back_to_server_key(monkeypatch) -> None: | |
| monkeypatch.setenv("OPENROUTER_API_KEY", "server-secret") | |
| with pytest.raises(Exception, match="OPENROUTER_API_KEY must be set"): | |
| create_chat_model( | |
| ModelProviderConfig( | |
| provider="openrouter", | |
| model="qwen/qwen3.5-9b", | |
| ) | |
| ) | |
| def test_load_dotenv_does_not_override_existing_env() -> None: | |
| os.environ["TEST_KEY"] = "from-env" | |
| try: | |
| _load_dotenv() | |
| finally: | |
| os.environ.pop("TEST_KEY", None) | |