Skip to content

Commit a494a3d

Browse files
authored
gh-115836: Don't use hardcoded line numbers in test_monitoring (#115837)
1 parent b481018 commit a494a3d

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

Lib/test/test_monitoring.py

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ def g1():
3535
TEST_TOOL2 = 3
3636
TEST_TOOL3 = 4
3737

38+
def nth_line(func, offset):
39+
return func.__code__.co_firstlineno + offset
40+
3841
class MonitoringBasicTest(unittest.TestCase):
3942

4043
def test_has_objects(self):
@@ -529,8 +532,8 @@ def test_lines_single(self):
529532
f1()
530533
sys.monitoring.set_events(TEST_TOOL, 0)
531534
sys.monitoring.register_callback(TEST_TOOL, E.LINE, None)
532-
start = LineMonitoringTest.test_lines_single.__code__.co_firstlineno
533-
self.assertEqual(events, [start+7, 16, start+8])
535+
start = nth_line(LineMonitoringTest.test_lines_single, 0)
536+
self.assertEqual(events, [start+7, nth_line(f1, 1), start+8])
534537
finally:
535538
sys.monitoring.set_events(TEST_TOOL, 0)
536539
sys.monitoring.register_callback(TEST_TOOL, E.LINE, None)
@@ -547,8 +550,13 @@ def test_lines_loop(self):
547550
floop()
548551
sys.monitoring.set_events(TEST_TOOL, 0)
549552
sys.monitoring.register_callback(TEST_TOOL, E.LINE, None)
550-
start = LineMonitoringTest.test_lines_loop.__code__.co_firstlineno
551-
self.assertEqual(events, [start+7, 23, 24, 23, 24, 23, start+8])
553+
start = nth_line(LineMonitoringTest.test_lines_loop, 0)
554+
floop_1 = nth_line(floop, 1)
555+
floop_2 = nth_line(floop, 2)
556+
self.assertEqual(
557+
events,
558+
[start+7, floop_1, floop_2, floop_1, floop_2, floop_1, start+8]
559+
)
552560
finally:
553561
sys.monitoring.set_events(TEST_TOOL, 0)
554562
sys.monitoring.register_callback(TEST_TOOL, E.LINE, None)
@@ -569,8 +577,8 @@ def test_lines_two(self):
569577
sys.monitoring.set_events(TEST_TOOL, 0); sys.monitoring.set_events(TEST_TOOL2, 0)
570578
sys.monitoring.register_callback(TEST_TOOL, E.LINE, None)
571579
sys.monitoring.register_callback(TEST_TOOL2, E.LINE, None)
572-
start = LineMonitoringTest.test_lines_two.__code__.co_firstlineno
573-
expected = [start+10, 16, start+11]
580+
start = nth_line(LineMonitoringTest.test_lines_two, 0)
581+
expected = [start+10, nth_line(f1, 1), start+11]
574582
self.assertEqual(events, expected)
575583
self.assertEqual(events2, expected)
576584
finally:

0 commit comments

Comments
 (0)