Replies: 1 comment
-
|
I'm having a hard time understanding the question and/or your intention with the in particular it has no real validation constraints other than |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
this code does not show any validation error
from referencing import Registry from referencing.jsonschema import DRAFT7 from jsonschema import Draft7Validator schema = { "$schema": "http://json-schema.org/draft-07/schema#", "$id": "test_schema_II.json", "type": "object", "definitions": { "step" : { "personal": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the person" }, "address": { "$ref": "../address/json_schema.json#/definitions/address" } }, "required": ["name", "address"] } } } } base_resource = DRAFT7.create_resource(schema) draft7_resources = [('/', base_resource)] schema_address = { "$schema": "http://json-schema.org/draft-07/schema#", "$id": "json_schema.json", "definitions": { "address": { "type": "object", "properties": { "street": { "type": "string" }, "city": { "type": "string" }, "postalCode": { "type": "string" } }, "required": ["street", "city", "postalCode"] } } } draft7_resources.append(('./address/json_schema.json',DRAFT7.create_resource(schema_address))) registry = Registry().with_resources(draft7_resources) print("Registry created with resources.") # no stats method for registry, but we can print and get number of uncrawled print(registry) validator = Draft7Validator(schema, registry=registry) # valid and ok data_good = { "HEADER": { "file_type": "test data", "file_version": 1 }, "definitions": { "step": { "personal": { "name": "Test Data", "address": { "street": "123 Main St", "city": "Anytown", "postalCode": "12345" } } } } } result = validator.is_valid(data_good) print(f"Validation result: for data good is {'valid' if result else 'not valid'}") data_bad = { "HEADER": { "file_type": "test data", "file_version": 1 }, "definitions": { "step": { "personal": { "name": "Test Data", "address": { "street": "123 Main St", } } } } } # !!!! should not be valid !!! result_bad = validator.is_valid(data_bad) print(f"Validation result: for data bad is {'valid' if result_bad else 'not valid'}") # !!!! should have entries !!! print("For data_bad validation errors:") for error in validator.iter_errors(data_bad): print(f"- {error.message}")for a less nested schema
{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "json_schema.json", "type": "object", "properties": { "address": { "$ref": "../address/json_schema.json#/definitions/address" } }, "required": ["address"] }it shows for this data
{ "HEADER": { "file_type": "test data", "file_version": 1 }, "name": "Test Data", "address": { "street": "123 Main St" }and I would have expected the same result for the nested schema/data.
Is there an explanation why this does not happen ?
Beta Was this translation helpful? Give feedback.
All reactions