Home / Class/ TestOutputConfigConflict Class — anthropic-sdk-python Architecture

TestOutputConfigConflict Class — anthropic-sdk-python Architecture

Architecture documentation for the TestOutputConfigConflict class in test_output_format_conversion.py from the anthropic-sdk-python codebase.

Entity Profile

Dependency Diagram

graph TD
  3fe92a68_5610_d400_14e9_4b7e189d5cae["TestOutputConfigConflict"]
  145ee5ba_422d_688e_ca30_dbf4a26bf47f["AnthropicError"]
  3fe92a68_5610_d400_14e9_4b7e189d5cae -->|extends| 145ee5ba_422d_688e_ca30_dbf4a26bf47f
  17ce5647_6f06_0676_a4a5_e378a3f57cb1["BaseModel"]
  3fe92a68_5610_d400_14e9_4b7e189d5cae -->|extends| 17ce5647_6f06_0676_a4a5_e378a3f57cb1
  95c8f4d2_e4af_bb89_0668_a558e9dbecb5["test_output_format_conversion.py"]
  3fe92a68_5610_d400_14e9_4b7e189d5cae -->|defined in| 95c8f4d2_e4af_bb89_0668_a558e9dbecb5
  a76b362e_b211_ad9a_8452_bbfb77e5e55b["test_create_rejects_both_output_format_and_config()"]
  3fe92a68_5610_d400_14e9_4b7e189d5cae -->|method| a76b362e_b211_ad9a_8452_bbfb77e5e55b
  ca06593f_93d5_8e37_5f46_6fe7bfbbb8d8["test_parse_rejects_both_output_format_and_config()"]
  3fe92a68_5610_d400_14e9_4b7e189d5cae -->|method| ca06593f_93d5_8e37_5f46_6fe7bfbbb8d8
  9465f4a2_c8b4_fdb4_d37e_b53c42e1c854["test_count_tokens_rejects_both_output_format_and_config()"]
  3fe92a68_5610_d400_14e9_4b7e189d5cae -->|method| 9465f4a2_c8b4_fdb4_d37e_b53c42e1c854
  c73f6096_a6bd_8969_6aaf_3264d141d520["test_allows_output_config_without_format()"]
  3fe92a68_5610_d400_14e9_4b7e189d5cae -->|method| c73f6096_a6bd_8969_6aaf_3264d141d520

Relationship Graph

Source Code

tests/api_resources/beta/test_output_format_conversion.py lines 312–377

class TestOutputConfigConflict:
    """Test that providing both output_format and output_config.format raises an error."""

    def test_create_rejects_both_output_format_and_config(self, client: Anthropic) -> None:
        """Verify .create() raises error when both output_format and output_config.format are provided."""
        with pytest.raises(AnthropicError, match="Both output_format and output_config.format were provided"):
            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"}},
                output_config={"format": {"type": "json_schema", "schema": {"type": "string"}}},
            )

    def test_parse_rejects_both_output_format_and_config(self, client: Anthropic) -> None:
        """Verify .parse() raises error when both output_format and output_config.format are provided."""

        class TestModel(BaseModel):
            value: str

        with pytest.raises(AnthropicError, match="Both output_format and output_config.format were provided"):
            client.beta.messages.parse(
                max_tokens=1024,
                messages=[{"role": "user", "content": "Test"}],
                model="claude-sonnet-4-5",
                output_format=TestModel,
                output_config={"format": {"type": "json_schema", "schema": {"type": "string"}}},
            )

    def test_count_tokens_rejects_both_output_format_and_config(self, client: Anthropic) -> None:
        """Verify .count_tokens() raises error when both are provided."""
        with pytest.raises(AnthropicError, match="Both output_format and output_config.format were provided"):
            client.beta.messages.count_tokens(
                messages=[{"role": "user", "content": "Test"}],
                model="claude-sonnet-4-5",
                output_format={"type": "json_schema", "schema": {"type": "object"}},
                output_config={"format": {"type": "json_schema", "schema": {"type": "string"}}},
            )

    def test_allows_output_config_without_format(self, client: Anthropic, respx_mock: MockRouter) -> None:
        """Verify output_config without format field can be used with output_format."""
        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": "test", "type": "text"}],
                    "stop_reason": "end_turn",
                    "usage": {"input_tokens": 10, "output_tokens": 20},
                },
            )
        )

        with warnings.catch_warnings(record=True):
            warnings.simplefilter("always")
            # Should succeed - output_config.effort is fine with output_format
            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"}},
                output_config={"effort": "high"},  # No format field, so no conflict
            )

Frequently Asked Questions

What is the TestOutputConfigConflict class?
TestOutputConfigConflict is a class in the anthropic-sdk-python codebase, defined in tests/api_resources/beta/test_output_format_conversion.py.
Where is TestOutputConfigConflict defined?
TestOutputConfigConflict is defined in tests/api_resources/beta/test_output_format_conversion.py at line 312.
What does TestOutputConfigConflict extend?
TestOutputConfigConflict extends AnthropicError, BaseModel.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free