Files
wehub-resource-sync 2c632336aa
CI / Viewer CI (push) Successful in 13m37s
CI / Core CI (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:32:38 +08:00

50 lines
1.6 KiB
Python

from __future__ import annotations
import pytest
from articraft.values import (
ProviderName,
ThinkingLevel,
infer_provider_from_model_id,
normalize_provider_name,
normalize_thinking_level,
provider_reasoning_level,
reasoning_level_alias,
)
@pytest.mark.parametrize(
("model_id", "provider"),
[
("gpt-5.5-2026-04-23", ProviderName.OPENAI),
("claude-sonnet-4-5", ProviderName.ANTHROPIC),
("codex-cli-default", ProviderName.CODEX_CLI),
("codex/gpt-5.5", ProviderName.CODEX_CLI),
("qwen3.6-flash", ProviderName.DASHSCOPE),
("gemini-3-flash-preview", ProviderName.GEMINI),
("gemini-3.5-flash", ProviderName.GEMINI),
("openai/gpt-5.4", ProviderName.OPENROUTER),
("qwen/qwen3.6-flash", ProviderName.OPENROUTER),
("deepseek-v4-pro", ProviderName.DEEPSEEK),
],
)
def test_infer_provider_from_model_id(model_id: str, provider: ProviderName) -> None:
assert infer_provider_from_model_id(model_id) is provider
def test_normalize_provider_name_rejects_unknown_provider() -> None:
with pytest.raises(ValueError, match="Unsupported provider"):
normalize_provider_name("local")
def test_thinking_level_helpers_keep_public_med_spelling() -> None:
assert normalize_thinking_level("medium") is ThinkingLevel.MED
assert provider_reasoning_level("med") == "medium"
assert reasoning_level_alias("med") == "medium"
def test_thinking_level_helpers_accept_xhigh() -> None:
assert normalize_thinking_level("xhigh") is ThinkingLevel.XHIGH
assert provider_reasoning_level("xhigh") == "xhigh"
assert reasoning_level_alias("xhigh") == "xhigh"