]> granicus.if.org Git - python/commitdiff
Issue #9850: Fixed macpath.join() for empty first component. Patch by
authorSerhiy Storchaka <storchaka@gmail.com>
Sat, 27 Sep 2014 15:53:01 +0000 (18:53 +0300)
committerSerhiy Storchaka <storchaka@gmail.com>
Sat, 27 Sep 2014 15:53:01 +0000 (18:53 +0300)
Oleg Oshmyan.

Lib/macpath.py
Lib/test/test_macpath.py
Misc/NEWS

index cd4cb8581af67e6e7d1bef020f71fb9bc750b470..c31bdaade1f5b4f04a0b8557b8992ad45701ae39 100644 (file)
@@ -42,7 +42,7 @@ def isabs(s):
 def join(s, *p):
     path = s
     for t in p:
-        if (not s) or isabs(t):
+        if (not path) or isabs(t):
             path = t
             continue
         if t[:1] == ':':
index 2c86c532c7ee33c15522ea1fff1d03f4a247e1fe..96ad61fbe12e22889997de95b470da7c62cdc1d8 100644 (file)
@@ -29,6 +29,26 @@ class MacPathTestCase(unittest.TestCase):
         self.assertEqual(split(":conky:mountpoint:"),
                           (':conky:mountpoint', ''))
 
+    def test_join(self):
+        join = macpath.join
+        self.assertEqual(join('a', 'b'), ':a:b')
+        self.assertEqual(join(':a', 'b'), ':a:b')
+        self.assertEqual(join(':a:', 'b'), ':a:b')
+        self.assertEqual(join(':a::', 'b'), ':a::b')
+        self.assertEqual(join(':a', '::b'), ':a::b')
+        self.assertEqual(join('a', ':'), ':a:')
+        self.assertEqual(join('a:', ':'), 'a:')
+        self.assertEqual(join('a', ''), ':a:')
+        self.assertEqual(join('a:', ''), 'a:')
+        self.assertEqual(join('', ''), '')
+        self.assertEqual(join('', 'a:b'), 'a:b')
+        self.assertEqual(join('', 'a', 'b'), ':a:b')
+        self.assertEqual(join('a:b', 'c'), 'a:b:c')
+        self.assertEqual(join('a:b', ':c'), 'a:b:c')
+        self.assertEqual(join('a', ':b', ':c'), ':a:b:c')
+        self.assertEqual(join('a', 'b:'), 'b:')
+        self.assertEqual(join('a:', 'b:'), 'b:')
+
     def test_splitext(self):
         splitext = macpath.splitext
         self.assertEqual(splitext(":foo.ext"), (':foo', '.ext'))
index 02e9c4c3aac135b3331ce059524f5b9d337bd9cf..2ad73fdf81d5f0d2f5bb6076d2224af477fb480a 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -22,6 +22,9 @@ Core and Builtins
 Library
 -------
 
+- Issue #9850: Fixed macpath.join() for empty first component.  Patch by
+  Oleg Oshmyan.
+
 - Issue #20912: Now directories added to ZIP file have correct Unix and MS-DOS
   directory attributes.