Skip to content

support for validating entire structure rather than throwing ONLY the first validation error found #515

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
radzhome opened this issue Jan 10, 2019 · 2 comments
Labels
Invalid Not a bug, PEBKAC, or an unsupported setup

Comments

@radzhome
Copy link

Would it be possible to add a flag to validate so that all the schema errors are found and included in the error? and in the error object itself, would be excellent to include a list of all the errors so can easily iterate over rather than having to parse the error message.

here for example I have 2 errors in schema

from jsonschema import validate
schema = {
     "type" : "object",
     "properties" : {
         "price" : {"type" : "number"},
         "name" : {"type" : "string"},
     },
 }

try:
    validate({"name" : 3, "price" : '34.99'}, schema)
except Exception as e:
    #import pdb; pdb.set_trace();
    breakpoint();
    raise

but am prompted for only the first one

jsonschema.exceptions.ValidationError: '34.99' is not of type 'number'

Failed validating 'type' in schema['properties']['price']:
    {'type': 'number'}

On instance['price']:
    '34.99'

I do not see this one until the first one is fixed;

Failed validating 'type' in schema['properties']['name']:
    {'type': 'string'}

On instance['name']:
    3```
@Julian
Copy link
Member

Julian commented Jan 10, 2019

Hi.

Please have a look at the documentation. Specifically SomeValidator.iter_errors.

@Julian Julian closed this as completed Jan 10, 2019
@radzhome
Copy link
Author

That works thanks!

@Julian Julian added the Invalid Not a bug, PEBKAC, or an unsupported setup label Apr 5, 2019
Julian added a commit that referenced this issue Oct 7, 2021
54440eab4 Merge pull request #516 from ChALkeR/chalker/ipv6
e7b22e1c6 Fix the sanity check by pinning.
8891d8107 Merge pull request #519 from json-schema-org/ether/custom-dialect
5f5fccda3 test the format-assertion vocabulary with a custom metaschema
3fcee3868 Merge pull request #512 from json-schema-org/ether/formats-and-non-strings
b349b8797 test that format-assertions are valid with non-string types
8e5b2f10d fix needless inconsistencies in format tests between drafts
02d7cb59a Correct "ref with sibling id" tests
1649470ba More ipv6 tests to increase coverage
7334b4c7e Merge pull request #505 from ChALkeR/chalker/fix-unicode
0fb2d2787 Consolidate optional/unicode into optional/ecmascript-regex
4f8c6d7bf unevaluatedProperties: deep dynamic + refs
9103f3b6f $ref wit id does not test what it is indented to do
f300dd15f Add test "same $anchor with different base uri"
d128f9d7f Add test to check that $id resolved against nearest parent, not just immediate parent
72e31dd20 Merge pull request #515 from json-schema-org/ether/fix-mandatory-format-tests
0173a0835 Revert "by default, "format" only annotates, not validates"
66e813a90 Merge pull request #506 from json-schema-org/ether/formats-non-ascii
9430972bc fix unicode tests in accordance to pattern/patternProperties spec

git-subtree-dir: json
git-subtree-split: 54440eab4d50b80a62cc9f9c561e306cdbb19591
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Invalid Not a bug, PEBKAC, or an unsupported setup
Projects
None yet
Development

No branches or pull requests

2 participants