diff options
Diffstat (limited to 'Lib/test/test_macpath.py')
| -rw-r--r-- | Lib/test/test_macpath.py | 26 |
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(""), ('', '')) |
