1
- import contextlib
1
+ from collections import deque
2
+ from contextlib import contextmanager
2
3
import json
3
- import pprint
4
4
import textwrap
5
5
6
6
from jsonschema import FormatChecker , ValidationError
@@ -270,9 +270,9 @@ def test_multiple_item_paths(self):
270
270
)
271
271
272
272
def test_uses_pprint (self ):
273
- with mock .patch . object ( pprint , " pformat" ) as pformat :
273
+ with mock .patch ( "pprint. pformat" ) as pformat :
274
274
str (self .error )
275
- self .assertGreater (pformat .call_count , 1 ) # schema + instance
275
+ self .assertEqual (pformat .call_count , 2 ) # schema + instance
276
276
277
277
278
278
class TestValidationErrorDetails (unittest .TestCase ):
@@ -293,29 +293,29 @@ def test_anyOf(self):
293
293
e = errors [0 ]
294
294
295
295
self .assertEqual (e .validator , "anyOf" )
296
- self .assertEqual (list ( e .schema_path ), ["anyOf" ])
296
+ self .assertEqual (e .schema_path , deque ( ["anyOf" ]) )
297
297
self .assertEqual (e .validator_value , schema ["anyOf" ])
298
298
self .assertEqual (e .instance , instance )
299
299
self .assertEqual (e .schema , schema )
300
- self .assertEqual (list ( e .path ), [] )
300
+ self .assertEqual (e .path , deque ([]) )
301
301
self .assertEqual (len (e .context ), 2 )
302
302
303
303
e1 , e2 = sorted_errors (e .context )
304
304
305
305
self .assertEqual (e1 .validator , "minimum" )
306
- self .assertEqual (list ( e1 .schema_path ), [0 , "minimum" ])
306
+ self .assertEqual (e1 .schema_path , deque ( [0 , "minimum" ]) )
307
307
self .assertEqual (e1 .validator_value , schema ["anyOf" ][0 ]["minimum" ])
308
308
self .assertEqual (e1 .instance , instance )
309
309
self .assertEqual (e1 .schema , schema ["anyOf" ][0 ])
310
- self .assertEqual (list ( e1 .path ), [] )
310
+ self .assertEqual (e1 .path , deque ([]) )
311
311
self .assertEqual (len (e1 .context ), 0 )
312
312
313
313
self .assertEqual (e2 .validator , "type" )
314
- self .assertEqual (list ( e2 .schema_path ), [1 , "type" ])
314
+ self .assertEqual (e2 .schema_path , deque ( [1 , "type" ]) )
315
315
self .assertEqual (e2 .validator_value , schema ["anyOf" ][1 ]["type" ])
316
316
self .assertEqual (e2 .instance , instance )
317
317
self .assertEqual (e2 .schema , schema ["anyOf" ][1 ])
318
- self .assertEqual (list ( e2 .path ), [] )
318
+ self .assertEqual (e2 .path , deque ([]) )
319
319
self .assertEqual (len (e2 .context ), 0 )
320
320
321
321
def test_type (self ):
@@ -338,21 +338,21 @@ def test_type(self):
338
338
e = errors [0 ]
339
339
340
340
self .assertEqual (e .validator , "type" )
341
- self .assertEqual (list ( e .schema_path ), ["type" ])
341
+ self .assertEqual (e .schema_path , deque ( ["type" ]) )
342
342
self .assertEqual (e .validator_value , schema ["type" ])
343
343
self .assertEqual (e .instance , instance )
344
344
self .assertEqual (e .schema , schema )
345
- self .assertEqual (list ( e .path ), [] )
345
+ self .assertEqual (e .path , deque ([]) )
346
346
self .assertEqual (len (e .context ), 2 )
347
347
348
348
e1 , e2 = sorted_errors (e .context )
349
349
350
350
self .assertEqual (e1 .validator , "type" )
351
- self .assertEqual (list ( e1 .schema_path ), [0 , "type" ])
351
+ self .assertEqual (e1 .schema_path , deque ( [0 , "type" ]) )
352
352
self .assertEqual (e1 .validator_value , schema ["type" ][0 ]["type" ])
353
353
self .assertEqual (e1 .instance , instance )
354
354
self .assertEqual (e1 .schema , schema ["type" ][0 ])
355
- self .assertEqual (list ( e1 .path ), [] )
355
+ self .assertEqual (e1 .path , deque ([]) )
356
356
self .assertEqual (len (e1 .context ), 0 )
357
357
358
358
self .assertEqual (e2 .validator , "enum" )
@@ -366,7 +366,7 @@ def test_type(self):
366
366
)
367
367
self .assertEqual (e2 .instance , instance ["foo" ])
368
368
self .assertEqual (e2 .schema , schema ["type" ][1 ]["properties" ]["foo" ])
369
- self .assertEqual (list ( e2 .path ), ["foo" ])
369
+ self .assertEqual (e2 .path , deque ( ["foo" ]) )
370
370
self .assertEqual (len (e2 .context ), 0 )
371
371
372
372
def test_single_nesting (self ):
@@ -383,10 +383,10 @@ def test_single_nesting(self):
383
383
errors = validator .iter_errors (instance )
384
384
e1 , e2 , e3 , e4 = sorted_errors (errors )
385
385
386
- self .assertEqual (list ( e1 .path ), ["bar" ])
387
- self .assertEqual (list ( e2 .path ), ["baz" ])
388
- self .assertEqual (list ( e3 .path ), ["baz" ])
389
- self .assertEqual (list ( e4 .path ), ["foo" ])
386
+ self .assertEqual (e1 .path , deque ( ["bar" ]) )
387
+ self .assertEqual (e2 .path , deque ( ["baz" ]) )
388
+ self .assertEqual (e3 .path , deque ( ["baz" ]) )
389
+ self .assertEqual (e4 .path , deque ( ["foo" ]) )
390
390
391
391
self .assertEqual (e1 .validator , "minItems" )
392
392
self .assertEqual (e2 .validator , "enum" )
@@ -416,15 +416,15 @@ def test_multiple_nesting(self):
416
416
errors = validator .iter_errors (instance )
417
417
e1 , e2 , e3 , e4 , e5 , e6 = sorted_errors (errors )
418
418
419
- self .assertEqual (list ( e1 .path ), [] )
420
- self .assertEqual (list ( e2 .path ), [0 ])
421
- self .assertEqual (list ( e3 .path ), [1 , "bar" ])
422
- self .assertEqual (list ( e4 .path ), [1 , "bar" , "bar" ])
423
- self .assertEqual (list ( e5 .path ), [1 , "bar" , "baz" ])
424
- self .assertEqual (list ( e6 .path ), [1 , "foo" ])
419
+ self .assertEqual (e1 .path , deque ([]) )
420
+ self .assertEqual (e2 .path , deque ( [0 ]) )
421
+ self .assertEqual (e3 .path , deque ( [1 , "bar" ]) )
422
+ self .assertEqual (e4 .path , deque ( [1 , "bar" , "bar" ]) )
423
+ self .assertEqual (e5 .path , deque ( [1 , "bar" , "baz" ]) )
424
+ self .assertEqual (e6 .path , deque ( [1 , "foo" ]) )
425
425
426
- self .assertEqual (list ( e1 .schema_path ), ["type" ])
427
- self .assertEqual (list ( e2 .schema_path ), ["items" , "type" ])
426
+ self .assertEqual (e1 .schema_path , deque ( ["type" ]) )
427
+ self .assertEqual (e2 .schema_path , deque ( ["items" , "type" ]) )
428
428
self .assertEqual (
429
429
list (e3 .schema_path ), ["items" , "properties" , "bar" , "type" ],
430
430
)
@@ -457,8 +457,8 @@ def test_additionalProperties(self):
457
457
errors = validator .iter_errors (instance )
458
458
e1 , e2 = sorted_errors (errors )
459
459
460
- self .assertEqual (list ( e1 .path ), ["bar" ])
461
- self .assertEqual (list ( e2 .path ), ["foo" ])
460
+ self .assertEqual (e1 .path , deque ( ["bar" ]) )
461
+ self .assertEqual (e2 .path , deque ( ["foo" ]) )
462
462
463
463
self .assertEqual (e1 .validator , "type" )
464
464
self .assertEqual (e2 .validator , "minimum" )
@@ -476,8 +476,8 @@ def test_patternProperties(self):
476
476
errors = validator .iter_errors (instance )
477
477
e1 , e2 = sorted_errors (errors )
478
478
479
- self .assertEqual (list ( e1 .path ), ["bar" ])
480
- self .assertEqual (list ( e2 .path ), ["foo" ])
479
+ self .assertEqual (e1 .path , deque ( ["bar" ]) )
480
+ self .assertEqual (e2 .path , deque ( ["foo" ]) )
481
481
482
482
self .assertEqual (e1 .validator , "type" )
483
483
self .assertEqual (e2 .validator , "minimum" )
@@ -493,8 +493,8 @@ def test_additionalItems(self):
493
493
errors = validator .iter_errors (instance )
494
494
e1 , e2 = sorted_errors (errors )
495
495
496
- self .assertEqual (list ( e1 .path ), [0 ])
497
- self .assertEqual (list ( e2 .path ), [1 ])
496
+ self .assertEqual (e1 .path , deque ( [0 ]) )
497
+ self .assertEqual (e2 .path , deque ( [1 ]) )
498
498
499
499
self .assertEqual (e1 .validator , "type" )
500
500
self .assertEqual (e2 .validator , "minimum" )
@@ -510,8 +510,8 @@ def test_additionalItems_with_items(self):
510
510
errors = validator .iter_errors (instance )
511
511
e1 , e2 = sorted_errors (errors )
512
512
513
- self .assertEqual (list ( e1 .path ), [1 ])
514
- self .assertEqual (list ( e2 .path ), [2 ])
513
+ self .assertEqual (e1 .path , deque ( [1 ]) )
514
+ self .assertEqual (e2 .path , deque ( [2 ]) )
515
515
516
516
self .assertEqual (e1 .validator , "type" )
517
517
self .assertEqual (e2 .validator , "minimum" )
@@ -555,7 +555,7 @@ def test_it_delegates_to_a_ref_resolver(self):
555
555
resolver = RefResolver ("" , {})
556
556
schema = {"$ref" : mock .Mock ()}
557
557
558
- @contextlib . contextmanager
558
+ @contextmanager
559
559
def resolving ():
560
560
yield {"type" : "integer" }
561
561
0 commit comments