mirror of
https://github.com/python/cpython.git
synced 2025-08-28 20:56:54 +00:00
bpo-45890: Add tests for tracing try-except-finally blocks (GH-29746)
This commit is contained in:
parent
8db06528ca
commit
a310fd83a0
2 changed files with 51 additions and 2 deletions
|
@ -642,15 +642,18 @@ class TraceTestCase(unittest.TestCase):
|
||||||
2
|
2
|
||||||
except:
|
except:
|
||||||
4
|
4
|
||||||
finally:
|
else:
|
||||||
6
|
6
|
||||||
|
finally:
|
||||||
|
8
|
||||||
|
|
||||||
self.run_and_compare(func,
|
self.run_and_compare(func,
|
||||||
[(0, 'call'),
|
[(0, 'call'),
|
||||||
(1, 'line'),
|
(1, 'line'),
|
||||||
(2, 'line'),
|
(2, 'line'),
|
||||||
(6, 'line'),
|
(6, 'line'),
|
||||||
(6, 'return')])
|
(8, 'line'),
|
||||||
|
(8, 'return')])
|
||||||
|
|
||||||
def test_nested_loops(self):
|
def test_nested_loops(self):
|
||||||
|
|
||||||
|
@ -1016,6 +1019,47 @@ class TraceTestCase(unittest.TestCase):
|
||||||
(3, 'line'),
|
(3, 'line'),
|
||||||
(3, 'return')])
|
(3, 'return')])
|
||||||
|
|
||||||
|
def test_try_in_try_with_exception(self):
|
||||||
|
|
||||||
|
def func():
|
||||||
|
try:
|
||||||
|
try:
|
||||||
|
raise TypeError
|
||||||
|
except ValueError as ex:
|
||||||
|
5
|
||||||
|
except TypeError:
|
||||||
|
7
|
||||||
|
|
||||||
|
self.run_and_compare(func,
|
||||||
|
[(0, 'call'),
|
||||||
|
(1, 'line'),
|
||||||
|
(2, 'line'),
|
||||||
|
(3, 'line'),
|
||||||
|
(3, 'exception'),
|
||||||
|
(4, 'line'),
|
||||||
|
(6, 'line'),
|
||||||
|
(7, 'line'),
|
||||||
|
(7, 'return')])
|
||||||
|
|
||||||
|
def func():
|
||||||
|
try:
|
||||||
|
try:
|
||||||
|
raise ValueError
|
||||||
|
except ValueError as ex:
|
||||||
|
5
|
||||||
|
except TypeError:
|
||||||
|
7
|
||||||
|
|
||||||
|
self.run_and_compare(func,
|
||||||
|
[(0, 'call'),
|
||||||
|
(1, 'line'),
|
||||||
|
(2, 'line'),
|
||||||
|
(3, 'line'),
|
||||||
|
(3, 'exception'),
|
||||||
|
(4, 'line'),
|
||||||
|
(5, 'line'),
|
||||||
|
(5, 'return')])
|
||||||
|
|
||||||
def test_if_in_if_in_if(self):
|
def test_if_in_if_in_if(self):
|
||||||
def func(a=0, p=1, z=1):
|
def func(a=0, p=1, z=1):
|
||||||
if p:
|
if p:
|
||||||
|
|
|
@ -11,6 +11,11 @@ from trace import Trace
|
||||||
|
|
||||||
from test.tracedmodules import testmod
|
from test.tracedmodules import testmod
|
||||||
|
|
||||||
|
##
|
||||||
|
## See also test_sys_settrace.py, which contains tests that cover
|
||||||
|
## tracing of many more code blocks.
|
||||||
|
##
|
||||||
|
|
||||||
#------------------------------- Utilities -----------------------------------#
|
#------------------------------- Utilities -----------------------------------#
|
||||||
|
|
||||||
def fix_ext_py(filename):
|
def fix_ext_py(filename):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue