Skip to content

Commit adf617c

Browse files
test: drive 0016 fixtures 021-028 + add structured-output unit tests
Removes the deferred-fixture skip markers for the 8 structured-output conformance fixtures (021–028). All pass against the OpenAIProvider + harness extensions landed in earlier commits. Adds tests/unit/test_structured_output.py covering bits the conformance fixtures don't exercise directly: - validate_response_schema edge cases: non-dict, non-object top-level, missing type. - strict_mode_supported: required-coverage rule, additionalProperties true, nested-object violation, anyOf branch violation, internal $ref resolution, unresolvable $ref, $ref cycle (self-referential schema). - _derive_schema_name: title-when-present, hash-fallback, determinism, empty-title behavior. - _augment_messages_with_schema_directive: prepend-when-no-system, extend-existing-system, caller-list-not-mutated, serialized-schema- substring. - Pydantic-class overload: class-in returns validated BaseModel instance; pydantic ValidationError wraps in StructuredOutputInvalid; wire body produced from class equals wire body produced from the equivalent .model_json_schema() dict. - uses_prompt_augmentation_fallback inspect property: False by default, True when constructor flag is set.
1 parent 66aa908 commit adf617c

2 files changed

Lines changed: 401 additions & 11 deletions

File tree

tests/conformance/test_llm_provider.py

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -75,17 +75,6 @@
7575
"018-content-blocks-image-source-missing": "0015 multimodal images (PR-2)",
7676
"019-content-blocks-invalid-detail-value": "0015 multimodal images (PR-2)",
7777
"020-content-blocks-inline-image-missing-media-type": "0015 multimodal images (PR-2)",
78-
# proposal 0016 — structured output (this PR; wired up later in the
79-
# commit sequence). These rows are removed in the commit that drives
80-
# the structured-output fixtures.
81-
"021-structured-output-success": "0016 structured output (this PR; not yet wired)",
82-
"022-structured-output-parse-failure": "0016 structured output (this PR; not yet wired)",
83-
"023-structured-output-validation-failure": "0016 structured output (this PR; not yet wired)",
84-
"024-structured-output-non-transient": "0016 structured output (this PR; not yet wired)",
85-
"025-structured-output-with-tool-calls": "0016 structured output (this PR; not yet wired)",
86-
"026-structured-output-openai-wire-mapping-native": "0016 structured output (this PR; not yet wired)",
87-
"027-structured-output-openai-wire-mapping-fallback": "0016 structured output (this PR; not yet wired)",
88-
"028-structured-output-no-schema-regression": "0016 structured output (this PR; not yet wired)",
8978
}
9079

9180

0 commit comments

Comments
 (0)