summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2016-11-11 12:07:48 +0200
committerSerhiy Storchaka <storchaka@gmail.com>2016-11-11 12:07:48 +0200
commitac40c6c575d2f6e619b998b7b91437f6a93bcde2 (patch)
treea27184039aab4a2c3553aeb2a6312b478230d0db
parent684cadaef94241a8552581d332cf2008ad426d18 (diff)
parenta27c064428c9e3b601be69876ef7e7299a3e0b7f (diff)
downloadcpython-git-ac40c6c575d2f6e619b998b7b91437f6a93bcde2.tar.gz
Issue #19398: Extra slash no longer added to sys.path components in case of
empty compile-time PYTHONPATH components. This fixes some tests in -S or -I modes.
-rw-r--r--Lib/test/test_trace.py8
-rw-r--r--Misc/NEWS3
-rw-r--r--Modules/getpath.c5
3 files changed, 11 insertions, 5 deletions
diff --git a/Lib/test/test_trace.py b/Lib/test/test_trace.py
index 1d894aaf84..1d87aea5a3 100644
--- a/Lib/test/test_trace.py
+++ b/Lib/test/test_trace.py
@@ -311,11 +311,11 @@ class TestCoverage(unittest.TestCase):
with captured_stdout() as stdout:
self._coverage(tracer)
stdout = stdout.getvalue()
- self.assertTrue("pprint.py" in stdout)
- self.assertTrue("case.py" in stdout) # from unittest
+ self.assertIn("pprint.py", stdout)
+ self.assertIn("case.py", stdout) # from unittest
files = os.listdir(TESTFN)
- self.assertTrue("pprint.cover" in files)
- self.assertTrue("unittest.case.cover" in files)
+ self.assertIn("pprint.cover", files)
+ self.assertIn("unittest.case.cover", files)
def test_coverage_ignore(self):
# Ignore all files, nothing should be traced nor printed
diff --git a/Misc/NEWS b/Misc/NEWS
index 0d4e72da3a..c463efda61 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,9 @@ What's New in Python 3.7.0 alpha 1
Core and Builtins
-----------------
+- Issue #19398: Extra slash no longer added to sys.path components in case of
+ empty compile-time PYTHONPATH components.
+
- Issue #28621: Sped up converting int to float by reusing faster bits counting
implementation. Patch by Adrian Wielgosik.
diff --git a/Modules/getpath.c b/Modules/getpath.c
index 65b47a3676..0f916436c5 100644
--- a/Modules/getpath.c
+++ b/Modules/getpath.c
@@ -762,7 +762,10 @@ calculate_path(void)
if (defpath[0] != SEP) {
wcscat(buf, prefix);
- wcscat(buf, separator);
+ if (prefixsz >= 2 && prefix[prefixsz - 2] != SEP &&
+ defpath[0] != (delim ? DELIM : L'\0')) { /* not empty */
+ wcscat(buf, separator);
+ }
}
if (delim) {