Fix calculation of evaluated properties #1351
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes a problem with the interplay of
additionalProperties
andunevaluatedProperties
. Test case included.Instance properties which are valid under the
additionalProperties
schema should be considered evaluated and thus never be invalid underunevaluatedProperties
.The old code assumes identical structure for the
properties
keyword as foradditionalProperties
andunevaluatedProperties
, producing a wrong list of evaluated keys for the latter two (when set to non-boolean subschemas). According to the spec, theproperties
keyword must always be an object with property names as keys;additionalProperties
andunevaluatedProperties
must each contain a subschema.Related PR: json-schema-org/JSON-Schema-Test-Suite#755
📚 Documentation preview 📚: https://python-jsonschema--1351.org.readthedocs.build/en/1351/