Spaces:
Running
Running
| # Copyright (c) Meta Platforms, Inc. and affiliates. | |
| # All rights reserved. | |
| # | |
| # This source code is licensed under the BSD-style license found in the | |
| # LICENSE file in the root directory of this source tree. | |
| from __future__ import annotations | |
| import pytest | |
| from opencode_env.config import OpenCodeConfig, provider_npm_package | |
| def test_defaults_require_only_base_url(): | |
| cfg = OpenCodeConfig(base_url="http://localhost:8000/v1") | |
| assert cfg.provider == "openai_compatible" | |
| assert cfg.api_key == "intercepted" | |
| assert cfg.model == "intercepted/model" | |
| assert cfg.opencode_version == "latest" | |
| assert "webfetch" in cfg.disabled_tools | |
| assert cfg.run_format == "json" | |
| def test_provider_npm_mapping(): | |
| assert provider_npm_package("openai_compatible") == "@ai-sdk/openai-compatible" | |
| assert provider_npm_package("openai") == "@ai-sdk/openai" | |
| assert provider_npm_package("anthropic") == "@ai-sdk/anthropic" | |
| def test_rejects_unknown_provider(): | |
| with pytest.raises(ValueError): | |
| OpenCodeConfig(provider="bogus", base_url="x") # type: ignore[arg-type] | |
| def test_custom_fields_override_defaults(): | |
| cfg = OpenCodeConfig( | |
| provider="openai", | |
| base_url="https://api.openai.com/v1", | |
| api_key="sk-test", | |
| model="openai/gpt-5.3-codex", | |
| opencode_version="0.5.3", | |
| disabled_tools=["webfetch"], | |
| system_prompt="be brief", | |
| extra_env={"FOO": "bar"}, | |
| ) | |
| assert cfg.model == "openai/gpt-5.3-codex" | |
| assert cfg.opencode_version == "0.5.3" | |
| assert cfg.extra_env == {"FOO": "bar"} | |