mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-01 17:00:21 +08:00
fix: 修复测试文件兼容性问题
- 重命名 golden 测试数据文件,将 `:` 替换为 `_` 以兼容 Windows 文件系统 - 修复 test_compatibility.py 中的参数名 global_conversion_enabled -> effective_conversion_enabled
This commit is contained in:
@@ -20,7 +20,7 @@ def test_same_format_is_compatible() -> None:
|
||||
"claude:chat",
|
||||
endpoint_format_acceptance_config=None,
|
||||
is_stream=False,
|
||||
global_conversion_enabled=False,
|
||||
effective_conversion_enabled=False,
|
||||
registry=MagicMock(),
|
||||
)
|
||||
assert ok is True
|
||||
@@ -37,7 +37,7 @@ def test_cli_format_convertible_when_converter_supports_full() -> None:
|
||||
"openai:chat",
|
||||
endpoint_format_acceptance_config={"enabled": True},
|
||||
is_stream=False,
|
||||
global_conversion_enabled=True,
|
||||
effective_conversion_enabled=True,
|
||||
registry=registry,
|
||||
)
|
||||
assert ok is True
|
||||
@@ -52,7 +52,7 @@ def test_global_switch_disabled_blocks_conversion() -> None:
|
||||
"openai:chat",
|
||||
endpoint_format_acceptance_config={"enabled": True},
|
||||
is_stream=False,
|
||||
global_conversion_enabled=False,
|
||||
effective_conversion_enabled=False,
|
||||
registry=MagicMock(),
|
||||
)
|
||||
assert ok is False
|
||||
@@ -66,7 +66,7 @@ def test_endpoint_config_none_blocks_conversion() -> None:
|
||||
"openai:chat",
|
||||
endpoint_format_acceptance_config=None,
|
||||
is_stream=False,
|
||||
global_conversion_enabled=True,
|
||||
effective_conversion_enabled=True,
|
||||
registry=MagicMock(),
|
||||
)
|
||||
assert ok is False
|
||||
@@ -80,7 +80,7 @@ def test_endpoint_disabled_blocks_conversion() -> None:
|
||||
"openai:chat",
|
||||
endpoint_format_acceptance_config={"enabled": False},
|
||||
is_stream=False,
|
||||
global_conversion_enabled=True,
|
||||
effective_conversion_enabled=True,
|
||||
registry=MagicMock(),
|
||||
)
|
||||
assert ok is False
|
||||
@@ -94,7 +94,7 @@ def test_accept_formats_allows_only_whitelist() -> None:
|
||||
"openai:chat",
|
||||
endpoint_format_acceptance_config={"enabled": True, "accept_formats": ["openai:chat"]},
|
||||
is_stream=False,
|
||||
global_conversion_enabled=True,
|
||||
effective_conversion_enabled=True,
|
||||
registry=MagicMock(),
|
||||
)
|
||||
assert ok is False
|
||||
@@ -108,7 +108,7 @@ def test_reject_formats_blocks_blacklist() -> None:
|
||||
"openai:chat",
|
||||
endpoint_format_acceptance_config={"enabled": True, "reject_formats": ["claude:chat"]},
|
||||
is_stream=False,
|
||||
global_conversion_enabled=True,
|
||||
effective_conversion_enabled=True,
|
||||
registry=MagicMock(),
|
||||
)
|
||||
assert ok is False
|
||||
@@ -122,7 +122,7 @@ def test_stream_conversion_disabled_blocks_stream() -> None:
|
||||
"openai:chat",
|
||||
endpoint_format_acceptance_config={"enabled": True, "stream_conversion": False},
|
||||
is_stream=True,
|
||||
global_conversion_enabled=True,
|
||||
effective_conversion_enabled=True,
|
||||
registry=MagicMock(),
|
||||
)
|
||||
assert ok is False
|
||||
@@ -139,7 +139,7 @@ def test_converter_support_required() -> None:
|
||||
"openai:chat",
|
||||
endpoint_format_acceptance_config={"enabled": True},
|
||||
is_stream=False,
|
||||
global_conversion_enabled=True,
|
||||
effective_conversion_enabled=True,
|
||||
registry=registry,
|
||||
)
|
||||
assert ok is False
|
||||
@@ -156,7 +156,7 @@ def test_conversion_allowed_when_converter_supports_full() -> None:
|
||||
"openai:chat",
|
||||
endpoint_format_acceptance_config={"enabled": True, "accept_formats": ["claude:chat"]},
|
||||
is_stream=False,
|
||||
global_conversion_enabled=True,
|
||||
effective_conversion_enabled=True,
|
||||
registry=registry,
|
||||
)
|
||||
assert ok is True
|
||||
@@ -174,7 +174,7 @@ def test_claude_cli_to_claude_no_conversion_needed() -> None:
|
||||
"claude:chat",
|
||||
endpoint_format_acceptance_config={"enabled": True},
|
||||
is_stream=False,
|
||||
global_conversion_enabled=True,
|
||||
effective_conversion_enabled=True,
|
||||
registry=MagicMock(),
|
||||
)
|
||||
assert ok is True
|
||||
@@ -189,7 +189,7 @@ def test_claude_to_claude_cli_no_conversion_needed() -> None:
|
||||
"claude:cli",
|
||||
endpoint_format_acceptance_config={"enabled": True},
|
||||
is_stream=False,
|
||||
global_conversion_enabled=True,
|
||||
effective_conversion_enabled=True,
|
||||
registry=MagicMock(),
|
||||
)
|
||||
assert ok is True
|
||||
@@ -204,7 +204,7 @@ def test_gemini_cli_to_gemini_no_conversion_needed() -> None:
|
||||
"gemini:chat",
|
||||
endpoint_format_acceptance_config={"enabled": True},
|
||||
is_stream=False,
|
||||
global_conversion_enabled=True,
|
||||
effective_conversion_enabled=True,
|
||||
registry=MagicMock(),
|
||||
)
|
||||
assert ok is True
|
||||
@@ -219,7 +219,7 @@ def test_claude_cli_to_claude_blocked_when_global_switch_disabled() -> None:
|
||||
"claude:chat",
|
||||
endpoint_format_acceptance_config={"enabled": True},
|
||||
is_stream=False,
|
||||
global_conversion_enabled=False,
|
||||
effective_conversion_enabled=False,
|
||||
registry=MagicMock(),
|
||||
)
|
||||
assert ok is False
|
||||
@@ -233,7 +233,7 @@ def test_claude_cli_to_claude_blocked_when_endpoint_not_configured() -> None:
|
||||
"claude:chat",
|
||||
endpoint_format_acceptance_config=None,
|
||||
is_stream=False,
|
||||
global_conversion_enabled=True,
|
||||
effective_conversion_enabled=True,
|
||||
registry=MagicMock(),
|
||||
)
|
||||
assert ok is False
|
||||
@@ -250,7 +250,7 @@ def test_openai_cli_to_openai_needs_conversion() -> None:
|
||||
"openai:chat",
|
||||
endpoint_format_acceptance_config={"enabled": True}, # 同族转换也需要端点配置
|
||||
is_stream=False,
|
||||
global_conversion_enabled=True, # 同族转换也需要全局开关
|
||||
effective_conversion_enabled=True, # 同族转换也需要全局开关
|
||||
registry=registry,
|
||||
)
|
||||
assert ok is True
|
||||
@@ -268,7 +268,7 @@ def test_openai_to_openai_cli_needs_conversion() -> None:
|
||||
"openai:cli",
|
||||
endpoint_format_acceptance_config={"enabled": True}, # 同族转换也需要端点配置
|
||||
is_stream=False,
|
||||
global_conversion_enabled=True, # 同族转换也需要全局开关
|
||||
effective_conversion_enabled=True, # 同族转换也需要全局开关
|
||||
registry=registry,
|
||||
)
|
||||
assert ok is True
|
||||
@@ -286,7 +286,7 @@ def test_openai_cli_to_openai_stream_needs_conversion() -> None:
|
||||
"openai:chat",
|
||||
endpoint_format_acceptance_config={"enabled": True}, # 同族转换也需要端点配置
|
||||
is_stream=True,
|
||||
global_conversion_enabled=True, # 同族转换也需要全局开关
|
||||
effective_conversion_enabled=True, # 同族转换也需要全局开关
|
||||
registry=registry,
|
||||
)
|
||||
assert ok is True
|
||||
@@ -304,7 +304,7 @@ def test_openai_cli_to_openai_fails_without_converter() -> None:
|
||||
"openai:chat",
|
||||
endpoint_format_acceptance_config={"enabled": True},
|
||||
is_stream=False,
|
||||
global_conversion_enabled=True,
|
||||
effective_conversion_enabled=True,
|
||||
registry=registry,
|
||||
)
|
||||
assert ok is False
|
||||
@@ -322,7 +322,7 @@ def test_openai_cli_to_openai_blocked_when_global_switch_disabled() -> None:
|
||||
"openai:chat",
|
||||
endpoint_format_acceptance_config={"enabled": True},
|
||||
is_stream=False,
|
||||
global_conversion_enabled=False, # 全局开关关闭
|
||||
effective_conversion_enabled=False, # 全局开关关闭
|
||||
registry=registry,
|
||||
)
|
||||
assert ok is False
|
||||
@@ -340,7 +340,7 @@ def test_openai_cli_to_openai_blocked_when_endpoint_disabled() -> None:
|
||||
"openai:chat",
|
||||
endpoint_format_acceptance_config={"enabled": False}, # 端点开关关闭
|
||||
is_stream=False,
|
||||
global_conversion_enabled=True,
|
||||
effective_conversion_enabled=True,
|
||||
registry=registry,
|
||||
)
|
||||
assert ok is False
|
||||
@@ -358,7 +358,7 @@ def test_openai_cli_to_openai_blocked_when_endpoint_not_configured() -> None:
|
||||
"openai:chat",
|
||||
endpoint_format_acceptance_config=None, # 无端点配置
|
||||
is_stream=False,
|
||||
global_conversion_enabled=True,
|
||||
effective_conversion_enabled=True,
|
||||
registry=registry,
|
||||
)
|
||||
assert ok is False
|
||||
|
||||
@@ -42,6 +42,11 @@ def _load_json(path: Path) -> Any:
|
||||
return json.loads(path.read_text(encoding="utf-8"))
|
||||
|
||||
|
||||
def _sanitize_format(fmt: str) -> str:
|
||||
"""Replace ':' with '_' for Windows-compatible filenames."""
|
||||
return fmt.replace(":", "_")
|
||||
|
||||
|
||||
def _make_registry() -> FormatConversionRegistry:
|
||||
reg = FormatConversionRegistry()
|
||||
reg.register(OpenAINormalizer())
|
||||
@@ -64,7 +69,8 @@ def test_golden_requests() -> None:
|
||||
for target in formats:
|
||||
if source == target:
|
||||
continue
|
||||
expected = _load_json(EXPECTED_DIR / f"request_{source}_to_{target}.json")
|
||||
fname = f"request_{_sanitize_format(source)}_to_{_sanitize_format(target)}.json"
|
||||
expected = _load_json(EXPECTED_DIR / fname)
|
||||
actual = reg.convert_request(inputs[source], source, target)
|
||||
assert _scrub(actual) == expected
|
||||
|
||||
@@ -83,7 +89,8 @@ def test_golden_responses() -> None:
|
||||
for target in formats:
|
||||
if source == target:
|
||||
continue
|
||||
expected = _load_json(EXPECTED_DIR / f"response_{source}_to_{target}.json")
|
||||
fname = f"response_{_sanitize_format(source)}_to_{_sanitize_format(target)}.json"
|
||||
expected = _load_json(EXPECTED_DIR / fname)
|
||||
actual = reg.convert_response(inputs[source], source, target)
|
||||
assert _scrub(actual) == expected
|
||||
|
||||
@@ -102,7 +109,8 @@ def test_golden_streams() -> None:
|
||||
for target in formats:
|
||||
if source == target:
|
||||
continue
|
||||
expected = _load_json(EXPECTED_DIR / f"stream_{source}_to_{target}.json")
|
||||
fname = f"stream_{_sanitize_format(source)}_to_{_sanitize_format(target)}.json"
|
||||
expected = _load_json(EXPECTED_DIR / fname)
|
||||
|
||||
state = StreamState()
|
||||
if source == "gemini:chat":
|
||||
|
||||
Reference in New Issue
Block a user