@@ -410,7 +410,7 @@ def force_list(path, key, value):
410
410
assert parse (xml , force_list = force_list , dict_constructor = dict ) == expectedResult
411
411
412
412
413
- def test_disable_entities_true_ignores_xmlbomb ():
413
+ def test_disable_entities_true_rejects_xmlbomb ():
414
414
xml = """
415
415
<!DOCTYPE xmlbomb [
416
416
<!ENTITY a "1234567890" >
@@ -419,13 +419,8 @@ def test_disable_entities_true_ignores_xmlbomb():
419
419
]>
420
420
<bomb>&c;</bomb>
421
421
"""
422
- expectedResult = {'bomb' : None }
423
- try :
424
- parse_attempt = parse (xml , disable_entities = True )
425
- except expat .ExpatError :
426
- assert True
427
- else :
428
- assert parse_attempt == expectedResult
422
+ with pytest .raises (expat .ExpatError , match = "entities are disabled" ):
423
+ parse (xml , disable_entities = True )
429
424
430
425
431
426
def test_disable_entities_false_returns_xmlbomb ():
@@ -442,20 +437,15 @@ def test_disable_entities_false_returns_xmlbomb():
442
437
assert parse (xml , disable_entities = False ) == expectedResult
443
438
444
439
445
- def test_disable_entities_true_ignores_external_dtd ():
440
+ def test_disable_entities_true_rejects_external_dtd ():
446
441
xml = """
447
442
<!DOCTYPE external [
448
443
<!ENTITY ee SYSTEM "http://www.python.org/">
449
444
]>
450
445
<root>ⅇ</root>
451
446
"""
452
- expectedResult = {'root' : None }
453
- try :
454
- parse_attempt = parse (xml , disable_entities = True )
455
- except expat .ExpatError :
456
- assert True
457
- else :
458
- assert parse_attempt == expectedResult
447
+ with pytest .raises (expat .ExpatError , match = "entities are disabled" ):
448
+ parse (xml , disable_entities = True )
459
449
460
450
461
451
def test_disable_entities_true_attempts_external_dtd ():
@@ -482,6 +472,16 @@ def raising_external_ref_handler(*args, **kwargs):
482
472
expat .ParserCreate = ParserCreate
483
473
484
474
475
+ def test_disable_entities_allows_comments_by_default ():
476
+ xml = """
477
+ <a>
478
+ <!-- ignored -->
479
+ <b>1</b>
480
+ </a>
481
+ """
482
+ assert parse (xml ) == {'a' : {'b' : '1' }}
483
+
484
+
485
485
def test_comments ():
486
486
xml = """
487
487
<a>
0 commit comments