TestOutputFormatConversion Class — anthropic-sdk-python Architecture
Architecture documentation for the TestOutputFormatConversion class in test_output_format_conversion.py from the anthropic-sdk-python codebase.
Entity Profile
Dependency Diagram
graph TD ddc92ce5_2097_f12d_1120_7b3ce1aed9e8["TestOutputFormatConversion"] 17ce5647_6f06_0676_a4a5_e378a3f57cb1["BaseModel"] ddc92ce5_2097_f12d_1120_7b3ce1aed9e8 -->|extends| 17ce5647_6f06_0676_a4a5_e378a3f57cb1 95c8f4d2_e4af_bb89_0668_a558e9dbecb5["test_output_format_conversion.py"] ddc92ce5_2097_f12d_1120_7b3ce1aed9e8 -->|defined in| 95c8f4d2_e4af_bb89_0668_a558e9dbecb5 21bbf1a6_7e0b_416e_6973_8ed8454940c0["test_create_converts_output_format_to_output_config()"] ddc92ce5_2097_f12d_1120_7b3ce1aed9e8 -->|method| 21bbf1a6_7e0b_416e_6973_8ed8454940c0 6de8710b_1294_8b52_2cc4_7f4ae250f21e["test_parse_converts_pydantic_to_output_config()"] ddc92ce5_2097_f12d_1120_7b3ce1aed9e8 -->|method| 6de8710b_1294_8b52_2cc4_7f4ae250f21e 98364a00_8eea_e190_051e_a5d67ff5de0d["test_stream_converts_output_format_to_output_config()"] ddc92ce5_2097_f12d_1120_7b3ce1aed9e8 -->|method| 98364a00_8eea_e190_051e_a5d67ff5de0d 3672fee6_3bc0_05f0_a357_fcf3f14e6f40["test_count_tokens_converts_output_format_to_output_config()"] ddc92ce5_2097_f12d_1120_7b3ce1aed9e8 -->|method| 3672fee6_3bc0_05f0_a357_fcf3f14e6f40
Relationship Graph
Source Code
tests/api_resources/beta/test_output_format_conversion.py lines 14–158
class TestOutputFormatConversion:
"""Test that output_format is properly converted to output_config.format."""
def test_create_converts_output_format_to_output_config(self, client: Anthropic, respx_mock: MockRouter) -> None:
"""Verify .create() converts output_format to output_config.format in request body."""
respx_mock.post("/v1/messages?beta=true").mock(
return_value=httpx.Response(
200,
json={
"id": "msg_123",
"type": "message",
"role": "assistant",
"model": "claude-sonnet-4-5",
"content": [{"text": '{"result": "test"}', "type": "text"}],
"stop_reason": "end_turn",
"usage": {"input_tokens": 10, "output_tokens": 20},
},
)
)
with warnings.catch_warnings(record=True):
warnings.simplefilter("always")
client.beta.messages.create(
max_tokens=1024,
messages=[{"role": "user", "content": "Test"}],
model="claude-sonnet-4-5",
output_format={"type": "json_schema", "schema": {"type": "object"}},
)
request = respx_mock.calls.last.request
body = json.loads(request.content)
# Should have output_config with format
assert "output_config" in body
assert "format" in body["output_config"]
assert body["output_config"]["format"]["type"] == "json_schema"
assert body["output_config"]["format"]["schema"]["type"] == "object"
# Should NOT have output_format in request
assert "output_format" not in body
@pytest.mark.skipif(_compat.PYDANTIC_V1, reason="parse with Pydantic models requires Pydantic v2")
def test_parse_converts_pydantic_to_output_config(self, client: Anthropic, respx_mock: MockRouter) -> None:
"""Verify .parse() converts Pydantic models to output_config.format."""
class User(BaseModel):
name: str
age: int
respx_mock.post("/v1/messages?beta=true").mock(
return_value=httpx.Response(
200,
json={
"id": "msg_123",
"type": "message",
"role": "assistant",
"model": "claude-sonnet-4-5",
"content": [{"text": '{"name": "John", "age": 30}', "type": "text"}],
"stop_reason": "end_turn",
"usage": {"input_tokens": 10, "output_tokens": 20},
},
)
)
with warnings.catch_warnings(record=True):
warnings.simplefilter("always")
client.beta.messages.parse(
max_tokens=1024,
messages=[{"role": "user", "content": "Test"}],
model="claude-sonnet-4-5",
output_format=User,
)
request = respx_mock.calls.last.request
body = json.loads(request.content)
# Should have output_config with format containing the User schema
assert "output_config" in body
assert "format" in body["output_config"]
assert body["output_config"]["format"]["type"] == "json_schema"
assert "properties" in body["output_config"]["format"]["schema"]
Extends
Source
Frequently Asked Questions
What is the TestOutputFormatConversion class?
TestOutputFormatConversion is a class in the anthropic-sdk-python codebase, defined in tests/api_resources/beta/test_output_format_conversion.py.
Where is TestOutputFormatConversion defined?
TestOutputFormatConversion is defined in tests/api_resources/beta/test_output_format_conversion.py at line 14.
What does TestOutputFormatConversion extend?
TestOutputFormatConversion extends BaseModel.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free