summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_macpath.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_macpath.py')
-rw-r--r--Lib/test/test_macpath.py26
1 files changed, 25 insertions, 1 deletions
diff --git a/Lib/test/test_macpath.py b/Lib/test/test_macpath.py
index 3a3cf04..24d8bb2 100644
--- a/Lib/test/test_macpath.py
+++ b/Lib/test/test_macpath.py
@@ -1,3 +1,5 @@
+import os
+import sys
import macpath
from test import test_support
import unittest
@@ -8,6 +10,28 @@ class MacPathTestCase(unittest.TestCase):
def test_abspath(self):
self.assert_(macpath.abspath("xx:yy") == "xx:yy")
+ # Issue 3426: check that abspath retuns unicode when the arg is unicode
+ # and str when it's str, with both ASCII and non-ASCII cwds
+ saved_cwd = os.getcwd()
+ cwds = ['cwd']
+ try:
+ cwds.append(u'\xe7w\xf0'.encode(sys.getfilesystemencoding()
+ or 'ascii'))
+ except UnicodeEncodeError:
+ pass # the cwd can't be encoded -- test with ascii cwd only
+ for cwd in cwds:
+ try:
+ os.mkdir(cwd)
+ os.chdir(cwd)
+ for path in ('', 'foo', 'f\xf2\xf2', '/foo', 'C:\\'):
+ self.assertTrue(isinstance(macpath.abspath(path), str))
+ for upath in (u'', u'fuu', u'f\xf9\xf9', u'/fuu', u'U:\\'):
+ self.assertTrue(isinstance(macpath.abspath(upath), unicode))
+ finally:
+ os.chdir(saved_cwd)
+ os.rmdir(cwd)
+
+
def test_isabs(self):
isabs = macpath.isabs
self.assert_(isabs("xx:yy"))
@@ -48,7 +72,7 @@ class MacPathTestCase(unittest.TestCase):
splitext = macpath.splitext
self.assertEquals(splitext(":foo.ext"), (':foo', '.ext'))
self.assertEquals(splitext("foo:foo.ext"), ('foo:foo', '.ext'))
- self.assertEquals(splitext(".ext"), ('', '.ext'))
+ self.assertEquals(splitext(".ext"), ('.ext', ''))
self.assertEquals(splitext("foo.ext:foo"), ('foo.ext:foo', ''))
self.assertEquals(splitext(":foo.ext:"), (':foo.ext:', ''))
self.assertEquals(splitext(""), ('', ''))