diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2015-05-19 08:00:07 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2015-05-19 08:00:07 (GMT) |
commit | 5bfc03f430ab13ed84c2c30f2c87e9800b5670a4 (patch) | |
tree | 65bd9f3891193717f61424862ad75b423281d066 /Lib | |
parent | 6baa0a53b05d580d21d260c5d7d6ee2d3ff005ee (diff) | |
download | cpython-5bfc03f430ab13ed84c2c30f2c87e9800b5670a4.zip cpython-5bfc03f430ab13ed84c2c30f2c87e9800b5670a4.tar.gz cpython-5bfc03f430ab13ed84c2c30f2c87e9800b5670a4.tar.bz2 |
Issue #23780: Improved error message in os.path.join() with single argument.
Idea by R. David Murray.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/macpath.py | 2 | ||||
-rw-r--r-- | Lib/ntpath.py | 2 | ||||
-rw-r--r-- | Lib/posixpath.py | 2 | ||||
-rw-r--r-- | Lib/test/test_genericpath.py | 4 |
4 files changed, 10 insertions, 0 deletions
diff --git a/Lib/macpath.py b/Lib/macpath.py index dbcf368..a90d105 100644 --- a/Lib/macpath.py +++ b/Lib/macpath.py @@ -53,6 +53,8 @@ def join(s, *p): try: colon = _get_colon(s) path = s + if not p: + path[:0] + colon #23780: Ensure compatible data type even if p is null. for t in p: if (not path) or isabs(t): path = t diff --git a/Lib/ntpath.py b/Lib/ntpath.py index cfb4606..9cc5ca7 100644 --- a/Lib/ntpath.py +++ b/Lib/ntpath.py @@ -81,6 +81,8 @@ def join(path, *paths): seps = '\\/' colon = ':' try: + if not paths: + path[:0] + sep #23780: Ensure compatible data type even if p is null. result_drive, result_path = splitdrive(path) for p in paths: p_drive, p_path = splitdrive(p) diff --git a/Lib/posixpath.py b/Lib/posixpath.py index ea51e11..09b8897 100644 --- a/Lib/posixpath.py +++ b/Lib/posixpath.py @@ -76,6 +76,8 @@ def join(a, *p): sep = _get_sep(a) path = a try: + if not p: + path[:0] + sep #23780: Ensure compatible data type even if p is null. for b in p: if b.startswith(sep): path = b diff --git a/Lib/test/test_genericpath.py b/Lib/test/test_genericpath.py index f2722bc..6ba55df 100644 --- a/Lib/test/test_genericpath.py +++ b/Lib/test/test_genericpath.py @@ -448,6 +448,10 @@ class CommonTest(GenericTest): self.pathmodule.join(42, 'str') with self.assertRaisesRegex(TypeError, errmsg % 'int'): self.pathmodule.join('str', 42) + with self.assertRaisesRegex(TypeError, errmsg % 'int'): + self.pathmodule.join(42) + with self.assertRaisesRegex(TypeError, errmsg % 'list'): + self.pathmodule.join([]) with self.assertRaisesRegex(TypeError, errmsg % 'bytearray'): self.pathmodule.join(bytearray(b'foo'), bytearray(b'bar')) |