diff options
Diffstat (limited to 'Lib/test')
| -rw-r--r-- | Lib/test/test_macpath.py | 17 | ||||
| -rw-r--r-- | Lib/test/test_ntpath.py | 21 | ||||
| -rw-r--r-- | Lib/test/test_posixpath.py | 15 |
3 files changed, 52 insertions, 1 deletions
diff --git a/Lib/test/test_macpath.py b/Lib/test/test_macpath.py index 2449b0a..81374d1 100644 --- a/Lib/test/test_macpath.py +++ b/Lib/test/test_macpath.py @@ -1,3 +1,4 @@ +import os import macpath from test import test_support import unittest @@ -8,6 +9,22 @@ 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() + for cwd in (u'cwd', u'\xe7w\xf0'): + 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")) diff --git a/Lib/test/test_ntpath.py b/Lib/test/test_ntpath.py index 10bbe3a..89b3f61 100644 --- a/Lib/test/test_ntpath.py +++ b/Lib/test/test_ntpath.py @@ -164,13 +164,32 @@ class TestNtpath(unittest.TestCase): # the rest of the tests for the ntpath module to be run to completion # on any platform, since most of the module is intended to be usable # from any platform. + # XXX this needs more tests try: import nt except ImportError: - pass + # check that the function is there even if we are not on Windows + ntpath.abspath else: tester('ntpath.abspath("C:\\")', "C:\\") + # 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() + for cwd in (u'cwd', u'\xe7w\xf0'): + try: + os.mkdir(cwd) + os.chdir(cwd) + for path in ('', 'foo', 'f\xf2\xf2', '/foo', 'C:\\'): + self.assertTrue(isinstance(ntpath.abspath(path), str)) + for upath in (u'', u'fuu', u'f\xf9\xf9', u'/fuu', u'U:\\'): + self.assertTrue(isinstance(ntpath.abspath(upath), + unicode)) + finally: + os.chdir(saved_cwd) + os.rmdir(cwd) + + def test_relpath(self): currentdir = os.path.split(os.getcwd())[-1] tester('ntpath.relpath("a")', 'a') diff --git a/Lib/test/test_posixpath.py b/Lib/test/test_posixpath.py index c2f3a4a..ef3429f 100644 --- a/Lib/test/test_posixpath.py +++ b/Lib/test/test_posixpath.py @@ -390,6 +390,21 @@ class PosixPathTest(unittest.TestCase): def test_abspath(self): self.assert_("foo" in posixpath.abspath("foo")) + # 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() + for cwd in (u'cwd', u'\xe7w\xf0'): + try: + os.mkdir(cwd) + os.chdir(cwd) + for path in ('', 'foo', 'f\xf2\xf2', '/foo', 'C:\\'): + self.assertTrue(isinstance(posixpath.abspath(path), str)) + for upath in (u'', u'fuu', u'f\xf9\xf9', u'/fuu', u'U:\\'): + self.assertTrue(isinstance(posixpath.abspath(upath), unicode)) + finally: + os.chdir(saved_cwd) + os.rmdir(cwd) + self.assertRaises(TypeError, posixpath.abspath) def test_realpath(self): |
