Skip to content

Commit 9ff1b5e

Browse files
committed
Make the way instances and schemas are passed to ValidatorTestMixin better.
1 parent 5f5b865 commit 9ff1b5e

File tree

1 file changed

+23
-29
lines changed

1 file changed

+23
-29
lines changed

jsonschema/tests/test_validators.py

Lines changed: 23 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -898,36 +898,22 @@ def test_minItems_invalid_string(self):
898898

899899

900900
class ValidatorTestMixin(MetaSchemaTestsMixin, object):
901-
def setUp(self):
902-
self.instance = object()
903-
self.schema = {}
904-
self.validator = self.Validator(self.schema)
905-
906901
def test_valid_instances_are_valid(self):
907-
errors = iter([])
908-
909-
with mock.patch.object(
910-
self.validator, "iter_errors", return_value=errors,
911-
):
912-
self.assertTrue(
913-
self.validator.is_valid(self.instance, self.schema)
914-
)
902+
schema, instance = self.valid
903+
self.assertTrue(self.Validator(schema).is_valid(instance))
915904

916905
def test_invalid_instances_are_not_valid(self):
917-
errors = iter([ValidationError("An error!")])
918-
919-
with mock.patch.object(
920-
self.validator, "iter_errors", return_value=errors,
921-
):
922-
self.assertFalse(
923-
self.validator.is_valid(self.instance, self.schema)
924-
)
906+
schema, instance = self.invalid
907+
self.assertFalse(self.Validator(schema).is_valid(instance))
925908

926909
def test_non_existent_properties_are_ignored(self):
927910
self.Validator({object(): object()}).validate(instance=object())
928911

929912
def test_it_creates_a_ref_resolver_if_not_provided(self):
930-
self.assertIsInstance(self.validator.resolver, validators.RefResolver)
913+
self.assertIsInstance(
914+
self.Validator({}).resolver,
915+
validators.RefResolver,
916+
)
931917

932918
def test_it_delegates_to_a_ref_resolver(self):
933919
ref, schema = "someCoolRef", {"type": "integer"}
@@ -957,14 +943,14 @@ def resolving(this, ref):
957943
self.Validator(schema, resolver=resolver).validate(None)
958944

959945
def test_is_type_is_true_for_valid_type(self):
960-
self.assertTrue(self.validator.is_type("foo", "string"))
946+
self.assertTrue(self.Validator({}).is_type("foo", "string"))
961947

962948
def test_is_type_is_false_for_invalid_type(self):
963-
self.assertFalse(self.validator.is_type("foo", "array"))
949+
self.assertFalse(self.Validator({}).is_type("foo", "array"))
964950

965951
def test_is_type_evades_bool_inheriting_from_int(self):
966-
self.assertFalse(self.validator.is_type(True, "integer"))
967-
self.assertFalse(self.validator.is_type(True, "number"))
952+
self.assertFalse(self.Validator({}).is_type(True, "integer"))
953+
self.assertFalse(self.Validator({}).is_type(True, "number"))
968954

969955
@unittest.skipIf(PY3, "In Python 3 json.load always produces unicode")
970956
def test_string_a_bytestring_is_a_string(self):
@@ -1085,6 +1071,8 @@ def test_False_is_not_a_schema_even_if_you_forget_to_check(self):
10851071

10861072
class TestDraft3Validator(AntiDraft6LeakMixin, ValidatorTestMixin, TestCase):
10871073
Validator = validators.Draft3Validator
1074+
valid = {}, {}
1075+
invalid = {"type": "integer"}, "foo"
10881076

10891077
def test_any_type_is_valid_for_type_any(self):
10901078
validator = self.Validator({"type": "any"})
@@ -1106,23 +1094,29 @@ def test_any_type_is_redefinable(self):
11061094
validator.validate("foo")
11071095

11081096
def test_is_type_is_true_for_any_type(self):
1109-
self.assertTrue(self.validator.is_valid(object(), {"type": "any"}))
1097+
self.assertTrue(self.Validator({}).is_valid(object(), {"type": "any"}))
11101098

11111099
def test_is_type_does_not_evade_bool_if_it_is_being_tested(self):
1112-
self.assertTrue(self.validator.is_type(True, "boolean"))
1113-
self.assertTrue(self.validator.is_valid(True, {"type": "any"}))
1100+
self.assertTrue(self.Validator({}).is_type(True, "boolean"))
1101+
self.assertTrue(self.Validator({}).is_valid(True, {"type": "any"}))
11141102

11151103

11161104
class TestDraft4Validator(AntiDraft6LeakMixin, ValidatorTestMixin, TestCase):
11171105
Validator = validators.Draft4Validator
1106+
valid = {}, {}
1107+
invalid = {"type": "integer"}, "foo"
11181108

11191109

11201110
class TestDraft6Validator(ValidatorTestMixin, TestCase):
11211111
Validator = validators.Draft6Validator
1112+
valid = {}, {}
1113+
invalid = {"type": "integer"}, "foo"
11221114

11231115

11241116
class TestDraft7Validator(ValidatorTestMixin, TestCase):
11251117
Validator = validators.Draft7Validator
1118+
valid = {}, {}
1119+
invalid = {"type": "integer"}, "foo"
11261120

11271121

11281122
class TestBuiltinFormats(TestCase):

0 commit comments

Comments
 (0)