@@ -1096,33 +1096,72 @@ def test_check_redefined_sequence(self):
1096
1096
"type" : "array" ,
1097
1097
"uniqueItems" : True
1098
1098
}
1099
-
1100
1099
MyMapping = namedtuple ('MyMapping' , 'a, b' )
1101
-
1102
1100
Validator = validators .extend (
1103
1101
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
+ })
1108
1110
)
1109
-
1110
1111
validator = Validator (schema )
1111
- validator .validate (deque (['a' , None , '1' , '' , True ]))
1112
- with self .assertRaises (exceptions .ValidationError ):
1113
- validator .validate (deque (['a' , 'b' , 'a' ]))
1114
1112
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
+ ]
1118
1135
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
+ ]
1122
1161
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 )
1126
1165
1127
1166
1128
1167
class AntiDraft6LeakMixin (object ):
0 commit comments