summaryrefslogtreecommitdiffstats
path: root/Lib/test
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2019-10-11 13:56:49 (GMT)
committerGitHub <noreply@github.com>2019-10-11 13:56:49 (GMT)
commit73665b41470532f873315d5ae39906160192320d (patch)
treeac1ca7f06f47d3518d5c4eaa6d13a3c8b2149e45 /Lib/test
parent380eb427ddd067042539d5d5f2b7f88a7183801c (diff)
downloadcpython-73665b41470532f873315d5ae39906160192320d.zip
cpython-73665b41470532f873315d5ae39906160192320d.tar.gz
cpython-73665b41470532f873315d5ae39906160192320d.tar.bz2
bpo-38347: find pathfix for Python scripts whose name contain a '-' (GH-16536)
pathfix.py: Assume all files that end on '.py' are Python scripts when working recursively. (cherry picked from commit 2b7dc40b2af6578181808ba73c1533fc114e55df) Co-authored-by: Ruediger Pluem <r.pluem@gmx.de>
Diffstat (limited to 'Lib/test')
-rw-r--r--Lib/test/test_tools/test_pathfix.py34
1 files changed, 28 insertions, 6 deletions
diff --git a/Lib/test/test_tools/test_pathfix.py b/Lib/test/test_tools/test_pathfix.py
index a879924..ec36117 100644
--- a/Lib/test/test_tools/test_pathfix.py
+++ b/Lib/test/test_tools/test_pathfix.py
@@ -14,25 +14,34 @@ class TestPathfixFunctional(unittest.TestCase):
script = os.path.join(scriptsdir, 'pathfix.py')
def setUp(self):
- self.temp_file = support.TESTFN
self.addCleanup(support.unlink, support.TESTFN)
- def pathfix(self, shebang, pathfix_flags, exitcode=0, stdout='', stderr=''):
- with open(self.temp_file, 'w', encoding='utf8') as f:
+ def pathfix(self, shebang, pathfix_flags, exitcode=0, stdout='', stderr='',
+ directory=''):
+ if directory:
+ # bpo-38347: Test filename should contain lowercase, uppercase,
+ # "-", "_" and digits.
+ filename = os.path.join(directory, 'script-A_1.py')
+ pathfix_arg = directory
+ else:
+ filename = support.TESTFN
+ pathfix_arg = filename
+
+ with open(filename, 'w', encoding='utf8') as f:
f.write(f'{shebang}\n' + 'print("Hello world")\n')
proc = subprocess.run(
[sys.executable, self.script,
- *pathfix_flags, '-n', self.temp_file],
+ *pathfix_flags, '-n', pathfix_arg],
capture_output=True, text=1)
if stdout == '' and proc.returncode == 0:
- stdout = f'{self.temp_file}: updating\n'
+ stdout = f'{filename}: updating\n'
self.assertEqual(proc.returncode, exitcode, proc)
self.assertEqual(proc.stdout, stdout, proc)
self.assertEqual(proc.stderr, stderr, proc)
- with open(self.temp_file, 'r', encoding='utf8') as f:
+ with open(filename, 'r', encoding='utf8') as f:
output = f.read()
lines = output.split('\n')
@@ -44,6 +53,19 @@ class TestPathfixFunctional(unittest.TestCase):
return new_shebang
+ def test_recursive(self):
+ tmpdir = support.TESTFN + '.d'
+ self.addCleanup(support.rmtree, tmpdir)
+ os.mkdir(tmpdir)
+ expected_stderr = f"recursedown('{os.path.basename(tmpdir)}')\n"
+ self.assertEqual(
+ self.pathfix(
+ '#! /usr/bin/env python',
+ ['-i', '/usr/bin/python3'],
+ directory=tmpdir,
+ stderr=expected_stderr),
+ '#! /usr/bin/python3')
+
def test_pathfix(self):
self.assertEqual(
self.pathfix(