]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.11] gh-109375: Fix bug where pdb registers an alias without an associated command...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Fri, 22 Sep 2023 01:45:11 +0000 (18:45 -0700)
committerGitHub <noreply@github.com>
Fri, 22 Sep 2023 01:45:11 +0000 (03:45 +0200)
gh-109375: Fix bug where pdb registers an alias without an associated command (GH-109376)
(cherry picked from commit 68a6f21f47e779ddd70e33cf04d170a63f077fcd)

Co-authored-by: buermarc <44375277+buermarc@users.noreply.github.com>
Lib/pdb.py
Lib/test/test_pdb.py
Misc/ACKS
Misc/NEWS.d/next/Library/2023-09-13-17-22-44.gh-issue-109375.ijJHZ9.rst [new file with mode: 0644]

index d3824e19fa82d1f34b0ce9cda1cc55eff36a4638..fe9eab9b5e1ff0d5b96a7bf5fdc7f4a79b572652 100755 (executable)
@@ -1505,8 +1505,11 @@ class Pdb(bdb.Bdb, cmd.Cmd):
             for alias in keys:
                 self.message("%s = %s" % (alias, self.aliases[alias]))
             return
-        if args[0] in self.aliases and len(args) == 1:
-            self.message("%s = %s" % (args[0], self.aliases[args[0]]))
+        if len(args) == 1:
+            if args[0] in self.aliases:
+                self.message("%s = %s" % (args[0], self.aliases[args[0]]))
+            else:
+                self.error(f"Unknown alias '{args[0]}'")
         else:
             self.aliases[args[0]] = ' '.join(args[1:])
 
index 4f4a56922803cf3bb3ba6edcb0299d6563deb1d6..22fc2b3581946632b5c9a173cf8075013a23645a 100644 (file)
@@ -640,8 +640,10 @@ def test_pdb_alias_command():
     ...     o.method()
 
     >>> with PdbTestInput([  # doctest: +ELLIPSIS
+    ...     'alias pi',
     ...     'alias pi for k in %1.__dict__.keys(): print(f"%1.{k} = {%1.__dict__[k]}")',
     ...     'alias ps pi self',
+    ...     'alias ps',
     ...     'pi o',
     ...     's',
     ...     'ps',
@@ -650,8 +652,12 @@ def test_pdb_alias_command():
     ...    test_function()
     > <doctest test.test_pdb.test_pdb_alias_command[1]>(4)test_function()
     -> o.method()
+    (Pdb) alias pi
+    *** Unknown alias 'pi'
     (Pdb) alias pi for k in %1.__dict__.keys(): print(f"%1.{k} = {%1.__dict__[k]}")
     (Pdb) alias ps pi self
+    (Pdb) alias ps
+    ps = pi self
     (Pdb) pi o
     o.attr1 = 10
     o.attr2 = str
index 5fe93d638082dc7d38de23bdcd49338779784dfe..988c3675cf2eeec76df88b57ccf7a50a71e6655e 100644 (file)
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -252,6 +252,7 @@ Curtis Bucher
 Colm Buckley
 Erik de Bueger
 Jan-Hein Bührman
+Marc Bürg
 Lars Buitinck
 Artem Bulgakov
 Dick Bulterman
diff --git a/Misc/NEWS.d/next/Library/2023-09-13-17-22-44.gh-issue-109375.ijJHZ9.rst b/Misc/NEWS.d/next/Library/2023-09-13-17-22-44.gh-issue-109375.ijJHZ9.rst
new file mode 100644 (file)
index 0000000..9b7a85d
--- /dev/null
@@ -0,0 +1 @@
+The :mod:`pdb` ``alias`` command now prevents registering aliases without arguments.