https://github.com/python/cpython/commit/2dc6b1789ec86dc80ea290fe33edd61140e... commit: 2dc6b1789ec86dc80ea290fe33edd61140e47f6f branch: 3.9 author: Irit Katriel <iritkatriel@yahoo.com> committer: vstinner <vstinner@python.org> date: 2021-04-28T17:21:11+02:00 summary: bpo-43960: test_pdb resets breakpoints to make tests deterministic (GH-25691) files: M Lib/test/test_pdb.py diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py index 0da449e33e98b6..2523a5d691ac7e 100644 --- a/Lib/test/test_pdb.py +++ b/Lib/test/test_pdb.py @@ -17,6 +17,13 @@ from test.test_doctest import _FakeInput from unittest.mock import patch +from bdb import Breakpoint + +def reset_Breakpoint(): + Breakpoint.next = 1 + Breakpoint.bplist = {} + Breakpoint.bpbynumber = [None] + class PdbTestInput(object): """Context manager that makes testing Pdb in doctests easier.""" @@ -227,10 +234,7 @@ def test_pdb_breakpoint_commands(): First, need to clear bdb state that might be left over from previous tests. Otherwise, the new breakpoints might get assigned different numbers. - >>> from bdb import Breakpoint - >>> Breakpoint.next = 1 - >>> Breakpoint.bplist = {} - >>> Breakpoint.bpbynumber = [None] + >>> reset_Breakpoint() Now test the breakpoint commands. NORMALIZE_WHITESPACE is needed because the breakpoint list outputs a tab for the "stop only" and "ignore next" @@ -699,8 +703,7 @@ def test_next_until_return_at_return_event(): ... test_function_2() ... end = 1 - >>> from bdb import Breakpoint - >>> Breakpoint.next = 1 + >>> reset_Breakpoint() >>> with PdbTestInput(['break test_function_2', ... 'continue', ... 'return', @@ -1127,6 +1130,7 @@ def test_pdb_next_command_in_generator_for_loop(): ... print('value', i) ... x = 123 + >>> reset_Breakpoint() >>> with PdbTestInput(['break test_gen', ... 'continue', ... 'next', @@ -1137,7 +1141,7 @@ def test_pdb_next_command_in_generator_for_loop(): > <doctest test.test_pdb.test_pdb_next_command_in_generator_for_loop[1]>(3)test_function() -> for i in test_gen(): (Pdb) break test_gen - Breakpoint 6 at <doctest test.test_pdb.test_pdb_next_command_in_generator_for_loop[0]>:1 + Breakpoint 1 at <doctest test.test_pdb.test_pdb_next_command_in_generator_for_loop[0]>:1 (Pdb) continue > <doctest test.test_pdb.test_pdb_next_command_in_generator_for_loop[0]>(2)test_gen() -> yield 0