mirror of
https://github.com/python/cpython.git
synced 2025-09-27 10:50:04 +00:00
Issue #16309: Make PYTHONPATH= behavior the same as if PYTHONPATH not set at all.
Thanks to Armin Rigo and Alexey Kachayev.
This commit is contained in:
parent
683b46aa8d
commit
69032c81aa
4 changed files with 22 additions and 3 deletions
|
@ -216,6 +216,23 @@ class CmdLineTest(unittest.TestCase):
|
||||||
self.assertIn(path1.encode('ascii'), out)
|
self.assertIn(path1.encode('ascii'), out)
|
||||||
self.assertIn(path2.encode('ascii'), out)
|
self.assertIn(path2.encode('ascii'), out)
|
||||||
|
|
||||||
|
def test_empty_PYTHONPATH_issue16309(self):
|
||||||
|
"""On Posix, it is documented that setting PATH to the
|
||||||
|
empty string is equivalent to not setting PATH at all,
|
||||||
|
which is an exception to the rule that in a string like
|
||||||
|
"/bin::/usr/bin" the empty string in the middle gets
|
||||||
|
interpreted as '.'"""
|
||||||
|
code = """if 1:
|
||||||
|
import sys
|
||||||
|
path = ":".join(sys.path)
|
||||||
|
path = path.encode("ascii", "backslashreplace")
|
||||||
|
sys.stdout.buffer.write(path)"""
|
||||||
|
rc1, out1, err1 = assert_python_ok('-c', code, PYTHONPATH="")
|
||||||
|
rc2, out2, err2 = assert_python_ok('-c', code)
|
||||||
|
# regarding to Posix specification, outputs should be equal
|
||||||
|
# for empty and unset PYTHONPATH
|
||||||
|
self.assertEquals(out1, out2)
|
||||||
|
|
||||||
def test_displayhook_unencodable(self):
|
def test_displayhook_unencodable(self):
|
||||||
for encoding in ('ascii', 'latin-1', 'utf-8'):
|
for encoding in ('ascii', 'latin-1', 'utf-8'):
|
||||||
env = os.environ.copy()
|
env = os.environ.copy()
|
||||||
|
|
|
@ -587,6 +587,7 @@ Sijin Joseph
|
||||||
Andreas Jung
|
Andreas Jung
|
||||||
Tattoo Mabonzo K.
|
Tattoo Mabonzo K.
|
||||||
Bohuslav Kabrda
|
Bohuslav Kabrda
|
||||||
|
Alexey Kachayev
|
||||||
Bob Kahn
|
Bob Kahn
|
||||||
Kurt B. Kaiser
|
Kurt B. Kaiser
|
||||||
Tamito Kajiyama
|
Tamito Kajiyama
|
||||||
|
|
|
@ -10,6 +10,9 @@ What's New in Python 3.4.0 Alpha 1?
|
||||||
Core and Builtins
|
Core and Builtins
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
- Issue #16309: Make PYTHONPATH="" behavior the same as if PYTHONPATH
|
||||||
|
not set at all.
|
||||||
|
|
||||||
- Issue #10189: Improve the error reporting of SyntaxErrors related to global
|
- Issue #10189: Improve the error reporting of SyntaxErrors related to global
|
||||||
and nonlocal statements.
|
and nonlocal statements.
|
||||||
|
|
||||||
|
|
|
@ -699,13 +699,11 @@ calculate_path(void)
|
||||||
*/
|
*/
|
||||||
bufsz = 0;
|
bufsz = 0;
|
||||||
|
|
||||||
if (_rtpypath) {
|
if (_rtpypath && _rtpypath[0] != '\0') {
|
||||||
size_t rtpypath_len;
|
size_t rtpypath_len;
|
||||||
rtpypath = _Py_char2wchar(_rtpypath, &rtpypath_len);
|
rtpypath = _Py_char2wchar(_rtpypath, &rtpypath_len);
|
||||||
if (rtpypath != NULL)
|
if (rtpypath != NULL)
|
||||||
bufsz += rtpypath_len + 1;
|
bufsz += rtpypath_len + 1;
|
||||||
else
|
|
||||||
_rtpypath = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
defpath = _pythonpath;
|
defpath = _pythonpath;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue