summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Berman <Julian@GrayVines.com>2013-04-10 23:40:56 -0400
committerJulian Berman <Julian@GrayVines.com>2013-04-11 00:19:52 -0400
commit638d7b8866d3fbe819ebf8a5673da5cfd2028b5c (patch)
treed85bed1c2d27c84df08489d5e1839feb256fb71e
parente49b661c641c52489cf46cbfc099eaea4e19015e (diff)
downloadjsonschema-638d7b8866d3fbe819ebf8a5673da5cfd2028b5c.tar.gz
Undeprecate and switch back to validator, to reduce annoyance.
-rw-r--r--docs/errors.rst2
-rw-r--r--jsonschema.py19
-rw-r--r--tests.py44
3 files changed, 28 insertions, 37 deletions
diff --git a/docs/errors.rst b/docs/errors.rst
index 1dc70e6..6ec94af 100644
--- a/docs/errors.rst
+++ b/docs/errors.rst
@@ -15,7 +15,7 @@ raised or returned, depending on which method or function is used.
A human readable message explaining the error.
- .. attribute:: validator_keyword
+ .. attribute:: validator
The failed validator.
diff --git a/jsonschema.py b/jsonschema.py
index e8e6563..d69c8b1 100644
--- a/jsonschema.py
+++ b/jsonschema.py
@@ -21,7 +21,6 @@ import operator
import re
import socket
import sys
-import warnings
try:
from collections import MutableMapping
@@ -77,7 +76,7 @@ class _Error(Exception):
self.schema_path = collections.deque(schema_path)
self.context = list(context)
self.cause = cause
- self.validator_keyword = validator
+ self.validator = validator
self.validator_value = validator_value
self.instance = instance
self.schema = schema
@@ -90,20 +89,12 @@ class _Error(Exception):
context=other.context,
path=other.path,
schema_path=other.schema_path,
- validator=other.validator_keyword,
+ validator=other.validator,
validator_value=other.validator_value,
instance=other.instance,
schema=other.schema,
)
- @property
- def validator(self):
- warnings.warn(
- "'validator' has been replaced with 'validator_keyword'",
- DeprecationWarning
- )
- return self.validator_keyword
-
def _set(self, **kwargs):
for k, v in iteritems(kwargs):
if getattr(self, k) is _unset:
@@ -269,7 +260,7 @@ class ValidatorMixin(object):
for error in errors:
# set details if they weren't already set by the called fn
error._set(
- validator_keyword=k,
+ validator=k,
validator_value=v,
instance=instance,
schema=_schema,
@@ -513,7 +504,7 @@ class Draft3Validator(ValidatorMixin, _Draft34CommonMixin, object):
elif subschema.get("required", False):
error = ValidationError("%r is a required property" % property)
error._set(
- validator_keyword="required",
+ validator="required",
validator_value=subschema["required"],
instance=instance,
schema=schema,
@@ -1224,7 +1215,7 @@ class ErrorTree(object):
container = self
for element in error.path:
container = container[element]
- container.errors[error.validator_keyword] = error
+ container.errors[error.validator] = error
def __contains__(self, k):
return k in self._contents
diff --git a/tests.py b/tests.py
index 9c3db1d..dc5c958 100644
--- a/tests.py
+++ b/tests.py
@@ -374,7 +374,7 @@ class TestValidationErrorDetails(unittest.TestCase):
self.assertEqual(len(errors), 1)
e = errors[0]
- self.assertEqual(e.validator_keyword, "anyOf")
+ self.assertEqual(e.validator, "anyOf")
self.assertEqual(list(e.schema_path), ["anyOf"])
self.assertEqual(e.validator_value, schema["anyOf"])
self.assertEqual(e.instance, instance)
@@ -384,7 +384,7 @@ class TestValidationErrorDetails(unittest.TestCase):
e1, e2 = sorted_errors(e.context)
- self.assertEqual(e1.validator_keyword, "minimum")
+ self.assertEqual(e1.validator, "minimum")
self.assertEqual(list(e1.schema_path), [0, "minimum"])
self.assertEqual(e1.validator_value, schema["anyOf"][0]["minimum"])
self.assertEqual(e1.instance, instance)
@@ -392,7 +392,7 @@ class TestValidationErrorDetails(unittest.TestCase):
self.assertEqual(list(e1.path), [])
self.assertEqual(len(e1.context), 0)
- self.assertEqual(e2.validator_keyword, "type")
+ self.assertEqual(e2.validator, "type")
self.assertEqual(list(e2.schema_path), [1, "type"])
self.assertEqual(e2.validator_value, schema["anyOf"][1]["type"])
self.assertEqual(e2.instance, instance)
@@ -418,7 +418,7 @@ class TestValidationErrorDetails(unittest.TestCase):
self.assertEqual(len(errors), 1)
e = errors[0]
- self.assertEqual(e.validator_keyword, "type")
+ self.assertEqual(e.validator, "type")
self.assertEqual(list(e.schema_path), ["type"])
self.assertEqual(e.validator_value, schema["type"])
self.assertEqual(e.instance, instance)
@@ -428,7 +428,7 @@ class TestValidationErrorDetails(unittest.TestCase):
e1, e2 = sorted_errors(e.context)
- self.assertEqual(e1.validator_keyword, "type")
+ self.assertEqual(e1.validator, "type")
self.assertEqual(list(e1.schema_path), [0, "type"])
self.assertEqual(e1.validator_value, schema["type"][0]["type"])
self.assertEqual(e1.instance, instance)
@@ -436,7 +436,7 @@ class TestValidationErrorDetails(unittest.TestCase):
self.assertEqual(list(e1.path), [])
self.assertEqual(len(e1.context), 0)
- self.assertEqual(e2.validator_keyword, "enum")
+ self.assertEqual(e2.validator, "enum")
self.assertEqual(
list(e2.schema_path),
[1, "properties", "foo", "enum"]
@@ -468,10 +468,10 @@ class TestValidationErrorDetails(unittest.TestCase):
self.assertEqual(list(e3.path), ["baz"])
self.assertEqual(list(e4.path), ["foo"])
- self.assertEqual(e1.validator_keyword, "minItems")
- self.assertEqual(e2.validator_keyword, "enum")
- self.assertEqual(e3.validator_keyword, "maximum")
- self.assertEqual(e4.validator_keyword, "type")
+ self.assertEqual(e1.validator, "minItems")
+ self.assertEqual(e2.validator, "enum")
+ self.assertEqual(e3.validator, "maximum")
+ self.assertEqual(e4.validator, "type")
def test_multiple_nesting(self):
instance = [1, {"foo" : 2, "bar" : {"baz" : [1]}}, "quux"]
@@ -502,12 +502,12 @@ class TestValidationErrorDetails(unittest.TestCase):
self.assertEqual(list(e5.path), [1, "bar", "baz"])
self.assertEqual(list(e6.path), [1, "foo"])
- self.assertEqual(e1.validator_keyword, "type")
- self.assertEqual(e2.validator_keyword, "type")
- self.assertEqual(e3.validator_keyword, "type")
- self.assertEqual(e4.validator_keyword, "required")
- self.assertEqual(e5.validator_keyword, "minItems")
- self.assertEqual(e6.validator_keyword, "enum")
+ self.assertEqual(e1.validator, "type")
+ self.assertEqual(e2.validator, "type")
+ self.assertEqual(e3.validator, "type")
+ self.assertEqual(e4.validator, "required")
+ self.assertEqual(e5.validator, "minItems")
+ self.assertEqual(e6.validator, "enum")
def test_additionalProperties(self):
instance = {"bar": "bar", "foo": 2}
@@ -521,8 +521,8 @@ class TestValidationErrorDetails(unittest.TestCase):
self.assertEqual(list(e1.path), ["bar"])
self.assertEqual(list(e2.path), ["foo"])
- self.assertEqual(e1.validator_keyword, "type")
- self.assertEqual(e2.validator_keyword, "minimum")
+ self.assertEqual(e1.validator, "type")
+ self.assertEqual(e2.validator, "minimum")
def test_patternProperties(self):
instance = {"bar": 1, "foo": 2}
@@ -539,8 +539,8 @@ class TestValidationErrorDetails(unittest.TestCase):
self.assertEqual(list(e1.path), ["bar"])
self.assertEqual(list(e2.path), ["foo"])
- self.assertEqual(e1.validator_keyword, "type")
- self.assertEqual(e2.validator_keyword, "minimum")
+ self.assertEqual(e1.validator, "type")
+ self.assertEqual(e2.validator, "minimum")
def test_additionalItems(self):
instance = ["foo", 1]
@@ -555,8 +555,8 @@ class TestValidationErrorDetails(unittest.TestCase):
self.assertEqual(list(e1.path), [0])
self.assertEqual(list(e2.path), [1])
- self.assertEqual(e1.validator_keyword, "type")
- self.assertEqual(e2.validator_keyword, "minimum")
+ self.assertEqual(e1.validator, "type")
+ self.assertEqual(e2.validator, "minimum")
class TestErrorTree(unittest.TestCase):