Files
alishahryar1--free-claude-code/tests/core/test_protocol_model_ownership.py
wehub-resource-sync 5296d0e97c
CI / Ban suppressions and legacy annotations (push) Has been cancelled
CI / pytest (push) Has been cancelled
CI / ruff-check (push) Has been cancelled
CI / ruff-format (push) Has been cancelled
CI / ty (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:35:44 +08:00

77 lines
2.5 KiB
Python

"""Protocol models live with the protocol logic that consumes them."""
import subprocess
import sys
from free_claude_code.core.anthropic import (
MessagesRequest as PublicMessagesRequest,
)
from free_claude_code.core.anthropic import (
MessagesResponse,
TokenCountResponse,
)
from free_claude_code.core.anthropic.models import MessagesRequest
from free_claude_code.core.openai_responses import (
OpenAIResponsesRequest as PublicOpenAIResponsesRequest,
)
from free_claude_code.core.openai_responses.models import OpenAIResponsesRequest
def test_anthropic_request_model_is_core_owned_and_permissive() -> None:
request = MessagesRequest.model_validate(
{
"model": "provider-model",
"messages": [{"role": "user", "content": "hello"}],
"provider_extension": {"enabled": True},
}
)
assert MessagesRequest.__module__ == "free_claude_code.core.anthropic.models"
assert PublicMessagesRequest is MessagesRequest
assert request.model_extra == {"provider_extension": {"enabled": True}}
def test_responses_request_model_is_core_owned_and_permissive() -> None:
request = OpenAIResponsesRequest.model_validate(
{
"model": "provider-model",
"input": "hello",
"provider_extension": {"enabled": True},
}
)
assert (
OpenAIResponsesRequest.__module__
== "free_claude_code.core.openai_responses.models"
)
assert PublicOpenAIResponsesRequest is OpenAIResponsesRequest
assert request.model_extra == {"provider_extension": {"enabled": True}}
def test_anthropic_response_models_are_protocol_owned() -> None:
assert MessagesResponse.__module__ == "free_claude_code.core.anthropic.models"
assert TokenCountResponse.__module__ == "free_claude_code.core.anthropic.models"
def test_protocol_facades_are_import_order_independent() -> None:
import_orders = (
(
"free_claude_code.core.anthropic",
"free_claude_code.core.openai_responses",
),
(
"free_claude_code.core.openai_responses",
"free_claude_code.core.anthropic",
),
)
for modules in import_orders:
script = "; ".join(f"import {module}" for module in modules)
completed = subprocess.run(
[sys.executable, "-c", script],
capture_output=True,
check=False,
text=True,
)
assert completed.returncode == 0, completed.stderr