100 lines
3.6 KiB
Python
100 lines
3.6 KiB
Python
# -*- coding: utf-8 -*-
|
|
# pylint: disable=redefined-outer-name,unused-argument,protected-access
|
|
"""Tests for the Volcano Engine built-in providers."""
|
|
from __future__ import annotations
|
|
|
|
import pytest
|
|
|
|
import pineagents.providers.provider_manager as provider_manager_module
|
|
from pineagents.providers.openai_provider import OpenAIProvider
|
|
from pineagents.providers.provider_manager import (
|
|
PROVIDER_VOLCENGINE_CN,
|
|
PROVIDER_VOLCENGINE_CN_CODINGPLAN,
|
|
VOLCENGINE_CODINGPLAN_MODELS,
|
|
VOLCENGINE_MODELS,
|
|
ProviderManager,
|
|
)
|
|
|
|
|
|
def test_volcengine_providers_are_openai_compatible() -> None:
|
|
"""Volcano Engine providers should be OpenAIProvider instances."""
|
|
assert isinstance(PROVIDER_VOLCENGINE_CN, OpenAIProvider)
|
|
assert isinstance(PROVIDER_VOLCENGINE_CN_CODINGPLAN, OpenAIProvider)
|
|
|
|
|
|
def test_volcengine_provider_configs() -> None:
|
|
"""Verify Volcano Engine provider configuration defaults."""
|
|
assert PROVIDER_VOLCENGINE_CN.id == "volcengine-cn"
|
|
assert PROVIDER_VOLCENGINE_CN.name == "Volcano Engine"
|
|
assert (
|
|
PROVIDER_VOLCENGINE_CN.base_url
|
|
== "https://ark.cn-beijing.volces.com/api/v3"
|
|
)
|
|
assert PROVIDER_VOLCENGINE_CN.freeze_url is True
|
|
assert PROVIDER_VOLCENGINE_CN.support_connection_check is True
|
|
assert PROVIDER_VOLCENGINE_CN.support_model_discovery is False
|
|
|
|
assert PROVIDER_VOLCENGINE_CN_CODINGPLAN.id == "volcengine-cn-codingplan"
|
|
assert (
|
|
PROVIDER_VOLCENGINE_CN_CODINGPLAN.name == "Volcano Engine Coding Plan"
|
|
)
|
|
assert (
|
|
PROVIDER_VOLCENGINE_CN_CODINGPLAN.base_url
|
|
== "https://ark.cn-beijing.volces.com/api/coding/v3"
|
|
)
|
|
assert PROVIDER_VOLCENGINE_CN_CODINGPLAN.freeze_url is True
|
|
assert PROVIDER_VOLCENGINE_CN_CODINGPLAN.support_connection_check is False
|
|
assert PROVIDER_VOLCENGINE_CN_CODINGPLAN.support_model_discovery is False
|
|
|
|
|
|
def test_volcengine_models_list() -> None:
|
|
"""Verify Volcano Engine model definitions."""
|
|
model_ids = [m.id for m in VOLCENGINE_MODELS]
|
|
assert "doubao-seed-2-0-code-preview-260215" in model_ids
|
|
assert len(VOLCENGINE_MODELS) == 9
|
|
assert len(VOLCENGINE_CODINGPLAN_MODELS) == 10
|
|
|
|
|
|
@pytest.fixture
|
|
def isolated_secret_dir(monkeypatch, tmp_path):
|
|
secret_dir = tmp_path / ".pineagents.secret"
|
|
monkeypatch.setattr(provider_manager_module, "SECRET_DIR", secret_dir)
|
|
return secret_dir
|
|
|
|
|
|
def test_volcengine_registered_in_provider_manager(
|
|
isolated_secret_dir,
|
|
) -> None:
|
|
"""Volcano Engine providers should be registered as built-in providers."""
|
|
manager = ProviderManager()
|
|
|
|
provider_cn = manager.get_provider("volcengine-cn")
|
|
assert provider_cn is not None
|
|
assert isinstance(provider_cn, OpenAIProvider)
|
|
assert provider_cn.base_url == "https://ark.cn-beijing.volces.com/api/v3"
|
|
|
|
provider_codingplan = manager.get_provider(
|
|
"volcengine-cn-codingplan",
|
|
)
|
|
assert provider_codingplan is not None
|
|
assert isinstance(provider_codingplan, OpenAIProvider)
|
|
assert (
|
|
provider_codingplan.base_url
|
|
== "https://ark.cn-beijing.volces.com/api/coding/v3"
|
|
)
|
|
|
|
|
|
def test_volcengine_has_expected_models(isolated_secret_dir) -> None:
|
|
"""Volcano Engine providers should include built-in models."""
|
|
manager = ProviderManager()
|
|
provider_cn = manager.get_provider("volcengine-cn")
|
|
provider_codingplan = manager.get_provider(
|
|
"volcengine-cn-codingplan",
|
|
)
|
|
|
|
assert provider_cn is not None
|
|
assert provider_codingplan is not None
|
|
|
|
assert provider_cn.has_model("doubao-seed-2-0-code-preview-260215")
|
|
assert provider_codingplan.has_model("doubao-seed-2-0-code-preview-260215")
|