@@ -1096,33 +1096,72 @@ def test_check_redefined_sequence(self):
10961096 "type" : "array" ,
10971097 "uniqueItems" : True
10981098 }
1099-
11001099 MyMapping = namedtuple ('MyMapping' , 'a, b' )
1101-
11021100 Validator = validators .extend (
11031101 self .Validator ,
1104- type_checker = self .Validator .TYPE_CHECKER .redefine (
1105- "array" ,
1106- lambda checker , thing : isinstance (thing , (list , deque )),
1107- )
1102+ type_checker = self .Validator .TYPE_CHECKER .redefine_many ({
1103+ "array" : lambda checker , thing : isinstance (
1104+ thing , (list , deque )
1105+ ),
1106+ "object" : lambda checker , thing : isinstance (
1107+ thing , (dict , MyMapping )
1108+ ),
1109+ })
11081110 )
1109-
11101111 validator = Validator (schema )
1111- validator .validate (deque (['a' , None , '1' , '' , True ]))
1112- with self .assertRaises (exceptions .ValidationError ):
1113- validator .validate (deque (['a' , 'b' , 'a' ]))
11141112
1115- validator .validate (deque ([[False ], [0 ]]))
1116- with self .assertRaises (exceptions .ValidationError ):
1117- validator .validate (deque ([[False ], [False ]]))
1113+ valid_instances = [
1114+ deque (['a' , None , '1' , '' , True ]),
1115+ deque ([[False ], [0 ]]),
1116+ [deque ([False ]), deque ([0 ])],
1117+ [[deque ([False ])], [deque ([0 ])]],
1118+ [[[[[deque ([False ])]]]], [[[[deque ([0 ])]]]]],
1119+ [deque ([deque ([False ])]), deque ([deque ([0 ])])],
1120+ [MyMapping ('a' , 0 ), MyMapping ('a' , False )],
1121+ [
1122+ MyMapping ('a' , [deque ([0 ])]),
1123+ MyMapping ('a' , [deque ([False ])])
1124+ ],
1125+ [
1126+ MyMapping ('a' , [
1127+ MyMapping ('a' , deque ([0 ]))
1128+ ]),
1129+ MyMapping ('a' , [
1130+ MyMapping ('a' , deque ([False ]))
1131+ ])
1132+ ],
1133+ [deque (deque (deque ([False ]))), deque (deque (deque ([0 ])))],
1134+ ]
11181135
1119- validator .validate ([deque ([False ]), deque ([0 ])])
1120- with self .assertRaises (exceptions .ValidationError ):
1121- validator .validate ([deque ([False ]), deque ([False ])])
1136+ for instance in valid_instances :
1137+ validator .validate (instance )
1138+
1139+ invalid_instances = [
1140+ deque (['a' , 'b' , 'a' ]),
1141+ deque ([[False ], [False ]]),
1142+ [deque ([False ]), deque ([False ])],
1143+ [[deque ([False ])], [deque ([False ])]],
1144+ [[[[[deque ([False ])]]]], [[[[deque ([False ])]]]]],
1145+ [deque ([deque ([False ])]), deque ([deque ([False ])])],
1146+ [MyMapping ('a' , False ), MyMapping ('a' , False )],
1147+ [
1148+ MyMapping ('a' , [deque ([False ])]),
1149+ MyMapping ('a' , [deque ([False ])])
1150+ ],
1151+ [
1152+ MyMapping ('a' , [
1153+ MyMapping ('a' , deque ([False ]))
1154+ ]),
1155+ MyMapping ('a' , [
1156+ MyMapping ('a' , deque ([False ]))
1157+ ])
1158+ ],
1159+ [deque (deque (deque ([False ]))), deque (deque (deque ([False ])))],
1160+ ]
11221161
1123- validator . validate ([ MyMapping ( 'a' , 0 ), MyMapping ( 'a' , False )])
1124- with self .assertRaises (exceptions .ValidationError ):
1125- validator .validate ([ MyMapping ( 'a' , False ), MyMapping ( 'a' , False )] )
1162+ for instance in invalid_instances :
1163+ with self .assertRaises (exceptions .ValidationError ):
1164+ validator .validate (instance )
11261165
11271166
11281167class AntiDraft6LeakMixin (object ):
0 commit comments