summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Berman <Julian@GrayVines.com>2018-05-03 17:03:59 -0400
committerJulian Berman <Julian@GrayVines.com>2018-05-03 17:03:59 -0400
commitcab4119ba344073e3be926bb0fbd3496788e6396 (patch)
treeaa4a574eab6017f256e1d78075b325526f21c084
parent004ce7c334eaf79f11dacfc30862acae1344ed5c (diff)
downloadjsonschema-cab4119ba344073e3be926bb0fbd3496788e6396.tar.gz
I guess there's not really a saner thing to do here.
-rw-r--r--jsonschema/tests/test_validators.py14
-rw-r--r--jsonschema/validators.py8
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)