@@ -357,7 +357,7 @@ def func7(arg0):
357
357
def func8(d):
358
358
try:
359
359
d[0][0]
360
- except (KeyError, TypeError):
360
+ except (KeyError, TypeError, m.ValueError ):
361
361
raise
362
362
finally:
363
363
pass
@@ -416,6 +416,30 @@ def func12(a):
416
416
417
417
if a < 3:
418
418
raise Error3
419
+
420
+ def func13(a):
421
+ # ensure we get `Exception`, `Exception()`, and `Exception('something')`
422
+ if a < 1:
423
+ raise ValueError
424
+ elif a < 2:
425
+ raise TypeError()
426
+ else:
427
+ raise IOError('IO Error!')
428
+
429
+ def func14(a):
430
+ # check that we properly identify submodule exceptions.
431
+ if a < 1:
432
+ raise m.ValueError
433
+ elif a < 2:
434
+ raise m.n.ValueError()
435
+ else:
436
+ raise a.b.c.ValueError(msg="some msg")
437
+
438
+ def func15():
439
+ try:
440
+ x = 1
441
+ except other.Exception:
442
+ raise
419
443
"""
420
444
421
445
@@ -439,6 +463,9 @@ def testHasRaiseStatements() -> None:
439
463
(75 , 0 , 'func10' ): True ,
440
464
(83 , 0 , 'func11' ): True ,
441
465
(100 , 0 , 'func12' ): True ,
466
+ (117 , 0 , 'func13' ): True ,
467
+ (126 , 0 , 'func14' ): True ,
468
+ (135 , 0 , 'func15' ): True ,
442
469
}
443
470
444
471
assert result == expected
@@ -464,11 +491,18 @@ def testWhichRaiseStatements() -> None:
464
491
'RuntimeError' ,
465
492
'TypeError' ,
466
493
],
467
- (54 , 0 , 'func8' ): ['KeyError' , 'TypeError' ],
494
+ (54 , 0 , 'func8' ): ['KeyError' , 'TypeError' , 'm.ValueError' ],
468
495
(62 , 0 , 'func9' ): ['AssertionError' , 'IndexError' ],
469
496
(75 , 0 , 'func10' ): ['GError' ],
470
497
(83 , 0 , 'func11' ): ['ValueError' ],
471
498
(100 , 0 , 'func12' ): ['Error1' , 'Error2' , 'Error3' ],
499
+ (117 , 0 , 'func13' ): ['IOError' , 'TypeError' , 'ValueError' ],
500
+ (126 , 0 , 'func14' ): [
501
+ 'a.b.c.ValueError' ,
502
+ 'm.ValueError' ,
503
+ 'm.n.ValueError' ,
504
+ ],
505
+ (135 , 0 , 'func15' ): ['other.Exception' ],
472
506
}
473
507
474
508
assert result == expected
0 commit comments