mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00
bpo-32691: Use mod_spec.parent when running modules with pdb (GH-5474)
Previously the module name was used, which broke relative imports when pdb was run against a plain module or submodule.
This commit is contained in:
parent
4e9da0d163
commit
38bfa8418f
3 changed files with 34 additions and 2 deletions
|
@ -1447,10 +1447,41 @@ class PdbTestCase(unittest.TestCase):
|
|||
quit
|
||||
"""
|
||||
stdout, _ = self._run_pdb(['-m', self.module_name], commands)
|
||||
self.assertTrue(any("VAR from module" in l for l in stdout.splitlines()))
|
||||
self.assertTrue(any("VAR from module" in l for l in stdout.splitlines()), stdout)
|
||||
self.assertTrue(any("VAR from top" in l for l in stdout.splitlines()))
|
||||
self.assertTrue(any("second var" in l for l in stdout.splitlines()))
|
||||
|
||||
def test_relative_imports_on_plain_module(self):
|
||||
# Validates running a plain module. See bpo32691
|
||||
self.module_name = 't_main'
|
||||
support.rmtree(self.module_name)
|
||||
main_file = self.module_name + '/runme.py'
|
||||
init_file = self.module_name + '/__init__.py'
|
||||
module_file = self.module_name + '/module.py'
|
||||
self.addCleanup(support.rmtree, self.module_name)
|
||||
os.mkdir(self.module_name)
|
||||
with open(init_file, 'w') as f:
|
||||
f.write(textwrap.dedent("""
|
||||
top_var = "VAR from top"
|
||||
"""))
|
||||
with open(main_file, 'w') as f:
|
||||
f.write(textwrap.dedent("""
|
||||
from . import module
|
||||
pass # We'll stop here and print the vars
|
||||
"""))
|
||||
with open(module_file, 'w') as f:
|
||||
f.write(textwrap.dedent("""
|
||||
var = "VAR from module"
|
||||
"""))
|
||||
commands = """
|
||||
b 3
|
||||
c
|
||||
p module.var
|
||||
quit
|
||||
"""
|
||||
stdout, _ = self._run_pdb(['-m', self.module_name + '.runme'], commands)
|
||||
self.assertTrue(any("VAR from module" in l for l in stdout.splitlines()), stdout)
|
||||
|
||||
|
||||
def load_tests(*args):
|
||||
from test import test_pdb
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue