Browse Source

Issue #23780: Improved error message in os.path.join() with single argument.

Idea by R. David Murray.
pull/9921/head
Serhiy Storchaka 11 years ago
parent
commit
5bfc03f430
  1. 2
      Lib/macpath.py
  2. 2
      Lib/ntpath.py
  3. 2
      Lib/posixpath.py
  4. 4
      Lib/test/test_genericpath.py
  5. 2
      Misc/NEWS

2
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

2
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)

2
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

4
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'))

2
Misc/NEWS

@ -49,6 +49,8 @@ Core and Builtins
Library
-------
- Issue #23780: Improved error message in os.path.join() with single argument.
- Issue #6598: Increased time precision and random number range in
email.utils.make_msgid() to strengthen the uniqueness of the message ID.

Loading…
Cancel
Save