Deprecate meta_validate too.

This commit is contained in:
Julian Berman
2012-09-28 14:39:09 -04:00
parent c99486f0c9
commit da0b82da8f
3 changed files with 17 additions and 1 deletions

View File

@@ -684,5 +684,13 @@ def validate(instance, schema, cls=Draft3Validator, *args, **kwargs):
"""
meta_validate = kwargs.pop("meta_validate", None)
if meta_validate is not None:
warnings.warn(
"meta_validate is deprecated and will be removed. If you want to "
"validate a schema, use Draft3Validator.check_schema instead.",
DeprecationWarning, stacklevel=2,
)
validator = cls(schema, *args, **kwargs)
validator.validate(instance)

View File

@@ -19,7 +19,7 @@ instance = schema = Draft3Validator.META_SCHEMA
results = timeit.timeit(
# Validate the Draft 3 meta-schema against itself without meta-validating
stmt="validate(instance, schema, meta_validate=False)",
stmt="validate(instance, schema)",
setup="from __main__ import instance, schema, validate",
number=arguments.number,
)

View File

@@ -908,6 +908,14 @@ class TestValidator(TestCase):
self.assertEqual(len(w), 1)
class TestValidateFunction(TestCase):
def test_meta_validate_deprecated(self):
with warnings.catch_warnings(record=True) as w:
warnings.simplefilter("always")
validate("foo", {}, meta_validate=False)
self.assertEqual(len(w), 1)
class TestValidatorIterErrors(TestIterErrors):
def setUp(self):
self.validator = Validator()