@@ -415,6 +415,55 @@ def test_multiple_nesting(self):
415
415
self .assertEqual (e5 .validator , "minItems" )
416
416
self .assertEqual (e6 .validator , "enum" )
417
417
418
+ def test_additionalProperties (self ):
419
+ instance = {"bar" : "bar" , "foo" : 2 }
420
+ schema = {
421
+ "additionalProperties" : {"type" : "integer" , "minimum" : 5 }
422
+ }
423
+
424
+ errors = self .validator .iter_errors (instance , schema )
425
+ e1 , e2 = sorted_errors (errors )
426
+
427
+ self .assertEqual (list (e1 .path ), ["bar" ])
428
+ self .assertEqual (list (e2 .path ), ["foo" ])
429
+
430
+ self .assertEqual (e1 .validator , "type" )
431
+ self .assertEqual (e2 .validator , "minimum" )
432
+
433
+ def test_patternProperties (self ):
434
+ instance = {"bar" : 1 , "foo" : 2 }
435
+ schema = {
436
+ "patternProperties" : {
437
+ "bar" : {"type" : "string" },
438
+ "foo" : {"minimum" : 5 }
439
+ }
440
+ }
441
+
442
+ errors = self .validator .iter_errors (instance , schema )
443
+ e1 , e2 = sorted_errors (errors )
444
+
445
+ self .assertEqual (list (e1 .path ), ["bar" ])
446
+ self .assertEqual (list (e2 .path ), ["foo" ])
447
+
448
+ self .assertEqual (e1 .validator , "type" )
449
+ self .assertEqual (e2 .validator , "minimum" )
450
+
451
+ def test_additionalItems (self ):
452
+ instance = ["foo" , 1 ]
453
+ schema = {
454
+ "items" : [],
455
+ "additionalItems" : {"type" : "integer" , "minimum" : 5 }
456
+ }
457
+
458
+ errors = self .validator .iter_errors (instance , schema )
459
+ e1 , e2 = sorted_errors (errors )
460
+
461
+ self .assertEqual (list (e1 .path ), [0 ])
462
+ self .assertEqual (list (e2 .path ), [1 ])
463
+
464
+ self .assertEqual (e1 .validator , "type" )
465
+ self .assertEqual (e2 .validator , "minimum" )
466
+
418
467
419
468
class TestErrorTree (unittest .TestCase ):
420
469
def setUp (self ):
0 commit comments