Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit ca534ab

Browse files
Issue #9850: Fixed macpath.join() for empty first component. Patch by
Oleg Oshmyan.
1 parent 3e67d58 commit ca534ab

3 files changed

Lines changed: 28 additions & 1 deletion

File tree

Lib/macpath.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ def join(s, *p):
5353
colon = _get_colon(s)
5454
path = s
5555
for t in p:
56-
if (not s) or isabs(t):
56+
if (not path) or isabs(t):
5757
path = t
5858
continue
5959
if t[:1] == colon:

Lib/test/test_macpath.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,16 +49,40 @@ def test_split(self):
4949
def test_join(self):
5050
join = macpath.join
5151
self.assertEqual(join('a', 'b'), ':a:b')
52+
self.assertEqual(join(':a', 'b'), ':a:b')
53+
self.assertEqual(join(':a:', 'b'), ':a:b')
54+
self.assertEqual(join(':a::', 'b'), ':a::b')
55+
self.assertEqual(join(':a', '::b'), ':a::b')
56+
self.assertEqual(join('a', ':'), ':a:')
57+
self.assertEqual(join('a:', ':'), 'a:')
58+
self.assertEqual(join('a', ''), ':a:')
59+
self.assertEqual(join('a:', ''), 'a:')
60+
self.assertEqual(join('', ''), '')
5261
self.assertEqual(join('', 'a:b'), 'a:b')
62+
self.assertEqual(join('', 'a', 'b'), ':a:b')
5363
self.assertEqual(join('a:b', 'c'), 'a:b:c')
5464
self.assertEqual(join('a:b', ':c'), 'a:b:c')
5565
self.assertEqual(join('a', ':b', ':c'), ':a:b:c')
66+
self.assertEqual(join('a', 'b:'), 'b:')
67+
self.assertEqual(join('a:', 'b:'), 'b:')
5668

5769
self.assertEqual(join(b'a', b'b'), b':a:b')
70+
self.assertEqual(join(b':a', b'b'), b':a:b')
71+
self.assertEqual(join(b':a:', b'b'), b':a:b')
72+
self.assertEqual(join(b':a::', b'b'), b':a::b')
73+
self.assertEqual(join(b':a', b'::b'), b':a::b')
74+
self.assertEqual(join(b'a', b':'), b':a:')
75+
self.assertEqual(join(b'a:', b':'), b'a:')
76+
self.assertEqual(join(b'a', b''), b':a:')
77+
self.assertEqual(join(b'a:', b''), b'a:')
78+
self.assertEqual(join(b'', b''), b'')
5879
self.assertEqual(join(b'', b'a:b'), b'a:b')
80+
self.assertEqual(join(b'', b'a', b'b'), b':a:b')
5981
self.assertEqual(join(b'a:b', b'c'), b'a:b:c')
6082
self.assertEqual(join(b'a:b', b':c'), b'a:b:c')
6183
self.assertEqual(join(b'a', b':b', b':c'), b':a:b:c')
84+
self.assertEqual(join(b'a', b'b:'), b'b:')
85+
self.assertEqual(join(b'a:', b'b:'), b'b:')
6286

6387
def test_splitext(self):
6488
splitext = macpath.splitext

Misc/NEWS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ Core and Builtins
2727
Library
2828
-------
2929

30+
- Issue #9850: Fixed macpath.join() for empty first component. Patch by
31+
Oleg Oshmyan.
32+
3033
- Issue #22427: TemporaryDirectory no longer attempts to clean up twice when
3134
used in the with statement in generator.
3235

0 commit comments

Comments
 (0)