From cab4119ba344073e3be926bb0fbd3496788e6396 Mon Sep 17 00:00:00 2001 From: Julian Berman Date: Thu, 3 May 2018 17:03:59 -0400 Subject: I guess there's not really a saner thing to do here. --- jsonschema/tests/test_validators.py | 14 +++++++++++++- jsonschema/validators.py | 8 ++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/jsonschema/tests/test_validators.py b/jsonschema/tests/test_validators.py index 6512677..2eeada4 100644 --- a/jsonschema/tests/test_validators.py +++ b/jsonschema/tests/test_validators.py @@ -964,6 +964,18 @@ class TestValidatorFor(TestCase): validators.Draft6Validator, ) + def test_True(self): + self.assertIs( + validators.validator_for(True), + validators._LATEST_VERSION, + ) + + def test_False(self): + self.assertIs( + validators.validator_for(False), + validators._LATEST_VERSION, + ) + def test_custom_validator(self): Validator = validators.create( meta_schema={"id": "meta schema id"}, @@ -976,7 +988,7 @@ class TestValidatorFor(TestCase): ) def test_validator_for_jsonschema_default(self): - self.assertIs(validators.validator_for({}), validators.Draft6Validator) + self.assertIs(validators.validator_for({}), validators._LATEST_VERSION) def test_validator_for_custom_default(self): self.assertIs(validators.validator_for({}, default=None), None) diff --git a/jsonschema/validators.py b/jsonschema/validators.py index 4ff551d..d975a76 100644 --- a/jsonschema/validators.py +++ b/jsonschema/validators.py @@ -494,6 +494,8 @@ Draft6Validator = create( version="draft6", ) +_LATEST_VERSION = Draft6Validator + class RefResolver(object): """ @@ -820,7 +822,7 @@ def validate(instance, schema, cls=None, *args, **kwargs): cls(schema, *args, **kwargs).validate(instance) -def validator_for(schema, default=Draft6Validator): +def validator_for(schema, default=_LATEST_VERSION): """ Retrieve the validator class appropriate for validating the given schema. @@ -839,6 +841,8 @@ def validator_for(schema, default=Draft6Validator): determined. If unprovided, the default is to return - `jsonschema.Draft6Validator`. + the latest supported draft. """ + if schema is True or schema is False: + return default return meta_schemas.get(schema.get(u"$schema", u""), default) -- cgit v1.2.1