--- a PPN by Garber Painting Akron. With Image Size Reduction included!URL: http://github.com/python/cpython/pull/21989.patch
0
Subject: [PATCH 4/9] add bdb.Breakpoint.clearBreakpoints()
---
Lib/bdb.py | 6 ++++++
Lib/test/test_bdb.py | 4 +---
Lib/test/test_pdb.py | 14 ++++++--------
3 files changed, 13 insertions(+), 11 deletions(-)
diff --git a/Lib/bdb.py b/Lib/bdb.py
index 82ffc398e1c12b4..abb50c092e69bb1 100644
--- a/Lib/bdb.py
+++ b/Lib/bdb.py
@@ -698,6 +698,12 @@ def __init__(self, file, line, temporary=False, cond=None, funcname=None):
else:
self.bplist[file, line] = [self]
+ @staticmethod
+ def clearBreakpoints():
+ Breakpoint.next = 1
+ Breakpoint.bplist = {}
+ Breakpoint.bpbynumber = [None]
+
def deleteMe(self):
"""Delete the breakpoint from the list associated to a file:line.
diff --git a/Lib/test/test_bdb.py b/Lib/test/test_bdb.py
index 88aa5c5804aacdb..ee12f298d9c45cb 100644
--- a/Lib/test/test_bdb.py
+++ b/Lib/test/test_bdb.py
@@ -74,9 +74,7 @@ class BdbNotExpectedError(BdbException): """Unexpected result."""
dry_run = 0
def reset_Breakpoint():
- _bdb.Breakpoint.next = 1
- _bdb.Breakpoint.bplist = {}
- _bdb.Breakpoint.bpbynumber = [None]
+ _bdb.Breakpoint.clearBreakpoints()
def info_breakpoints():
bp_list = [bp for bp in _bdb.Breakpoint.bpbynumber if bp]
diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py
index e2aaa9aa7bdefcd..f711266361f8cd9 100644
--- a/Lib/test/test_pdb.py
+++ b/Lib/test/test_pdb.py
@@ -213,11 +213,9 @@ def test_pdb_basic_commands():
BAZ
"""
-def reset_Breakpoint_state():
+def reset_Breakpoint():
import bdb
- bdb.Breakpoint.next = 1
- bdb.Breakpoint.bplist = {}
- bdb.Breakpoint.bpbynumber = [None]
+ bdb.Breakpoint.clearBreakpoints()
def test_pdb_breakpoint_commands():
"""Test basic commands related to breakpoints.
@@ -232,7 +230,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.
- >>> reset_Breakpoint_state()
+ >>> 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"
@@ -328,7 +326,7 @@ def test_pdb_breakpoint_commands():
def test_pdb_breakpoints_preserved_across_interactive_sessions():
"""Breakpoints are remembered between interactive sessions
- >>> reset_Breakpoint_state()
+ >>> reset_Breakpoint()
>>> with PdbTestInput([ # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE
... 'import test.test_pdb',
... 'break test.test_pdb.do_something',
@@ -746,7 +744,7 @@ def test_next_until_return_at_return_event():
... test_function_2()
... end = 1
- >>> reset_Breakpoint_state()
+ >>> reset_Breakpoint()
>>> with PdbTestInput(['break test_function_2',
... 'continue',
... 'return',
@@ -1259,7 +1257,7 @@ def test_pdb_issue_20766():
... print('pdb %d: %s' % (i, sess._previous_sigint_handler))
... i += 1
- >>> reset_Breakpoint_state()
+ >>> reset_Breakpoint()
>>> with PdbTestInput(['continue',
... 'continue']):
... test_function()
From 653039555a3245efa1adc18d47b70c81ad1a35c4 Mon Sep 17 00:00:00 2001
From: Irit Katriel
Date: Thu, 5 Nov 2020 12:50:14 +0000
Subject: [PATCH 5/9] added clear_break()s to the new bdb test
---
Lib/test/test_bdb.py | 26 ++++++++++++++++++++++----
1 file changed, 22 insertions(+), 4 deletions(-)
diff --git a/Lib/test/test_bdb.py b/Lib/test/test_bdb.py
index ee12f298d9c45cb..d3bb154c2bd6845 100644
--- a/Lib/test/test_bdb.py
+++ b/Lib/test/test_bdb.py
@@ -959,13 +959,31 @@ def test_load_bps_from_previous_Bdb_instance(self):
db2.set_break(__file__, 2)
self.assertEqual(db1.get_all_breaks(), {fname: [1]})
self.assertEqual(db2.get_all_breaks(), {fname: [1, 2]})
- reset_Breakpoint()
+ db2.clear_break(__file__, 1)
+ self.assertEqual(db1.get_all_breaks(), {fname: [1]})
+ self.assertEqual(db2.get_all_breaks(), {fname: [2]})
db3 = Bdb()
- db3.set_break(__file__, 3)
self.assertEqual(db1.get_all_breaks(), {fname: [1]})
- self.assertEqual(db2.get_all_breaks(), {fname: [1, 2]})
- self.assertEqual(db3.get_all_breaks(), {fname: [3]})
+ self.assertEqual(db2.get_all_breaks(), {fname: [2]})
+ self.assertEqual(db3.get_all_breaks(), {fname: [2]})
+ db2.clear_break(__file__, 2)
+ self.assertEqual(db1.get_all_breaks(), {fname: [1]})
+ self.assertEqual(db2.get_all_breaks(), {})
+ self.assertEqual(db3.get_all_breaks(), {fname: [2]})
+ db4 = Bdb()
+ db4.set_break(__file__, 3)
+ self.assertEqual(db1.get_all_breaks(), {fname: [1]})
+ self.assertEqual(db2.get_all_breaks(), {})
+ self.assertEqual(db3.get_all_breaks(), {fname: [2]})
+ self.assertEqual(db4.get_all_breaks(), {fname: [3]})
reset_Breakpoint()
+ db5 = Bdb()
+ db5.set_break(__file__, 4)
+ self.assertEqual(db1.get_all_breaks(), {fname: [1]})
+ self.assertEqual(db2.get_all_breaks(), {})
+ self.assertEqual(db3.get_all_breaks(), {fname: [2]})
+ self.assertEqual(db4.get_all_breaks(), {fname: [3]})
+ self.assertEqual(db5.get_all_breaks(), {fname: [4]})
class RunTestCase(BaseTestCase):
From e53650d507a5932fefc6318fc7007be636186cc8 Mon Sep 17 00:00:00 2001
From: Irit Katriel
Date: Thu, 5 Nov 2020 12:58:19 +0000
Subject: [PATCH 6/9] make the test a little more interesting
---
Lib/test/test_bdb.py | 32 +++++++++++++++++---------------
1 file changed, 17 insertions(+), 15 deletions(-)
diff --git a/Lib/test/test_bdb.py b/Lib/test/test_bdb.py
index d3bb154c2bd6845..5c234c30b03633e 100644
--- a/Lib/test/test_bdb.py
+++ b/Lib/test/test_bdb.py
@@ -957,33 +957,35 @@ def test_load_bps_from_previous_Bdb_instance(self):
self.assertEqual(db1.get_all_breaks(), {fname: [1]})
db2 = Bdb()
db2.set_break(__file__, 2)
+ db2.set_break(__file__, 3)
+ db2.set_break(__file__, 4)
self.assertEqual(db1.get_all_breaks(), {fname: [1]})
- self.assertEqual(db2.get_all_breaks(), {fname: [1, 2]})
+ self.assertEqual(db2.get_all_breaks(), {fname: [1, 2, 3, 4]})
db2.clear_break(__file__, 1)
self.assertEqual(db1.get_all_breaks(), {fname: [1]})
- self.assertEqual(db2.get_all_breaks(), {fname: [2]})
+ self.assertEqual(db2.get_all_breaks(), {fname: [2, 3, 4]})
db3 = Bdb()
self.assertEqual(db1.get_all_breaks(), {fname: [1]})
- self.assertEqual(db2.get_all_breaks(), {fname: [2]})
- self.assertEqual(db3.get_all_breaks(), {fname: [2]})
+ self.assertEqual(db2.get_all_breaks(), {fname: [2, 3, 4]})
+ self.assertEqual(db3.get_all_breaks(), {fname: [2, 3, 4]})
db2.clear_break(__file__, 2)
self.assertEqual(db1.get_all_breaks(), {fname: [1]})
- self.assertEqual(db2.get_all_breaks(), {})
- self.assertEqual(db3.get_all_breaks(), {fname: [2]})
+ self.assertEqual(db2.get_all_breaks(), {fname: [3, 4]})
+ self.assertEqual(db3.get_all_breaks(), {fname: [2, 3, 4]})
db4 = Bdb()
- db4.set_break(__file__, 3)
+ db4.set_break(__file__, 5)
self.assertEqual(db1.get_all_breaks(), {fname: [1]})
- self.assertEqual(db2.get_all_breaks(), {})
- self.assertEqual(db3.get_all_breaks(), {fname: [2]})
- self.assertEqual(db4.get_all_breaks(), {fname: [3]})
+ self.assertEqual(db2.get_all_breaks(), {fname: [3, 4]})
+ self.assertEqual(db3.get_all_breaks(), {fname: [2, 3, 4]})
+ self.assertEqual(db4.get_all_breaks(), {fname: [3, 4, 5]})
reset_Breakpoint()
db5 = Bdb()
- db5.set_break(__file__, 4)
+ db5.set_break(__file__, 6)
self.assertEqual(db1.get_all_breaks(), {fname: [1]})
- self.assertEqual(db2.get_all_breaks(), {})
- self.assertEqual(db3.get_all_breaks(), {fname: [2]})
- self.assertEqual(db4.get_all_breaks(), {fname: [3]})
- self.assertEqual(db5.get_all_breaks(), {fname: [4]})
+ self.assertEqual(db2.get_all_breaks(), {fname: [3, 4]})
+ self.assertEqual(db3.get_all_breaks(), {fname: [2, 3, 4]})
+ self.assertEqual(db4.get_all_breaks(), {fname: [3, 4, 5]})
+ self.assertEqual(db5.get_all_breaks(), {fname: [6]})
class RunTestCase(BaseTestCase):
From 76a6320b7d5959e670e9eca6dcd3652382dbcc51 Mon Sep 17 00:00:00 2001
From: Irit Katriel
Date: Thu, 5 Nov 2020 13:26:45 +0000
Subject: [PATCH 7/9] added delete breakpoint to the new pdb test
---
Lib/test/test_pdb.py | 29 +++++++++++++++++++++++++----
1 file changed, 25 insertions(+), 4 deletions(-)
diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py
index f711266361f8cd9..98e2b937d1339ab 100644
--- a/Lib/test/test_pdb.py
+++ b/Lib/test/test_pdb.py
@@ -330,6 +330,7 @@ def test_pdb_breakpoints_preserved_across_interactive_sessions():
>>> with PdbTestInput([ # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE
... 'import test.test_pdb',
... 'break test.test_pdb.do_something',
+ ... 'break test.test_pdb.do_nothing',
... 'break',
... 'continue',
... ]):
@@ -338,9 +339,12 @@ def test_pdb_breakpoints_preserved_across_interactive_sessions():
(Pdb) import test.test_pdb
(Pdb) break test.test_pdb.do_something
Breakpoint 1 at ...test_pdb.py:...
+ (Pdb) break test.test_pdb.do_nothing
+ Breakpoint 2 at ...test_pdb.py:...
(Pdb) break
Num Type Disp Enb Where
1 breakpoint keep yes at ...test_pdb.py:...
+ 2 breakpoint keep yes at ...test_pdb.py:...
(Pdb) continue
>>> with PdbTestInput([ # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE
@@ -348,7 +352,6 @@ def test_pdb_breakpoints_preserved_across_interactive_sessions():
... 'break pdb.find_function',
... 'break',
... 'clear 1',
- ... 'clear 2',
... 'continue',
... ]):
... pdb.run('print()')
@@ -356,16 +359,34 @@ def test_pdb_breakpoints_preserved_across_interactive_sessions():
(Pdb) break
Num Type Disp Enb Where
1 breakpoint keep yes at ...test_pdb.py:...
+ 2 breakpoint keep yes at ...test_pdb.py:...
(Pdb) break pdb.find_function
- Breakpoint 2 at ...pdb.py:94
+ Breakpoint 3 at ...pdb.py:94
(Pdb) break
Num Type Disp Enb Where
1 breakpoint keep yes at ...test_pdb.py:...
- 2 breakpoint keep yes at ...pdb.py:...
+ 2 breakpoint keep yes at ...test_pdb.py:...
+ 3 breakpoint keep yes at ...pdb.py:...
(Pdb) clear 1
Deleted breakpoint 1 at ...test_pdb.py:...
+ (Pdb) continue
+
+ >>> with PdbTestInput([ # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE
+ ... 'break',
+ ... 'clear 2',
+ ... 'clear 3',
+ ... 'continue',
+ ... ]):
+ ... pdb.run('print()')
+ > (1)()
+ (Pdb) break
+ Num Type Disp Enb Where
+ 2 breakpoint keep yes at ...test_pdb.py:...
+ 3 breakpoint keep yes at ...pdb.py:...
(Pdb) clear 2
- Deleted breakpoint 2 at ...pdb.py:...
+ Deleted breakpoint 2 at ...test_pdb.py:...
+ (Pdb) clear 3
+ Deleted breakpoint 3 at ...pdb.py:...
(Pdb) continue
"""
From 28668589b292d886fb6b05b0ae9ca949e93fc710 Mon Sep 17 00:00:00 2001
From: Irit Katriel
Date: Thu, 5 Nov 2020 14:30:12 +0000
Subject: [PATCH 8/9] break up test to improve readability
---
Lib/test/test_bdb.py | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/Lib/test/test_bdb.py b/Lib/test/test_bdb.py
index 5c234c30b03633e..398698c79c16dfa 100644
--- a/Lib/test/test_bdb.py
+++ b/Lib/test/test_bdb.py
@@ -955,6 +955,7 @@ def test_load_bps_from_previous_Bdb_instance(self):
fname = db1.canonic(__file__)
db1.set_break(__file__, 1)
self.assertEqual(db1.get_all_breaks(), {fname: [1]})
+
db2 = Bdb()
db2.set_break(__file__, 2)
db2.set_break(__file__, 3)
@@ -964,6 +965,7 @@ def test_load_bps_from_previous_Bdb_instance(self):
db2.clear_break(__file__, 1)
self.assertEqual(db1.get_all_breaks(), {fname: [1]})
self.assertEqual(db2.get_all_breaks(), {fname: [2, 3, 4]})
+
db3 = Bdb()
self.assertEqual(db1.get_all_breaks(), {fname: [1]})
self.assertEqual(db2.get_all_breaks(), {fname: [2, 3, 4]})
@@ -972,6 +974,7 @@ def test_load_bps_from_previous_Bdb_instance(self):
self.assertEqual(db1.get_all_breaks(), {fname: [1]})
self.assertEqual(db2.get_all_breaks(), {fname: [3, 4]})
self.assertEqual(db3.get_all_breaks(), {fname: [2, 3, 4]})
+
db4 = Bdb()
db4.set_break(__file__, 5)
self.assertEqual(db1.get_all_breaks(), {fname: [1]})
@@ -979,6 +982,7 @@ def test_load_bps_from_previous_Bdb_instance(self):
self.assertEqual(db3.get_all_breaks(), {fname: [2, 3, 4]})
self.assertEqual(db4.get_all_breaks(), {fname: [3, 4, 5]})
reset_Breakpoint()
+
db5 = Bdb()
db5.set_break(__file__, 6)
self.assertEqual(db1.get_all_breaks(), {fname: [1]})
From 5862d288746ea232d80849f4bb10a2a7be10e803 Mon Sep 17 00:00:00 2001
From: Irit Katriel
Date: Tue, 22 Dec 2020 10:08:09 +0000
Subject: [PATCH 9/9] Update 2020-08-28-23-07-53.bpo-24160.MSGnKr.rst
---
.../next/Library/2020-08-28-23-07-53.bpo-24160.MSGnKr.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Misc/NEWS.d/next/Library/2020-08-28-23-07-53.bpo-24160.MSGnKr.rst b/Misc/NEWS.d/next/Library/2020-08-28-23-07-53.bpo-24160.MSGnKr.rst
index 41ebfa7c2c661e1..c0cfd87b878af34 100644
--- a/Misc/NEWS.d/next/Library/2020-08-28-23-07-53.bpo-24160.MSGnKr.rst
+++ b/Misc/NEWS.d/next/Library/2020-08-28-23-07-53.bpo-24160.MSGnKr.rst
@@ -1 +1 @@
-Fixed bug where breakpoints did not persist across multiple debugger sessions in pdb's interactive mode.
\ No newline at end of file
+Fixed bug where breakpoints did not persist across multiple debugger sessions in :mod:`pdb`'s interactive mode.
pFad - Phonifier reborn
Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies:
Alternative Proxy
pFad Proxy
pFad v3 Proxy
pFad v4 Proxy