diff options
author | Ezio Melotti <ezio.melotti@gmail.com> | 2010-02-20 09:16:04 +0000 |
---|---|---|
committer | Ezio Melotti <ezio.melotti@gmail.com> | 2010-02-20 09:16:04 +0000 |
commit | 502f8eb50b2e2968534da6cdfafb563615cc5798 (patch) | |
tree | beed6f693b70137cd08d3f5e05d0d0532a8051f0 /Lib/test | |
parent | aaa210e2fdc96030439bf694fae1994cac495565 (diff) | |
download | cpython-git-502f8eb50b2e2968534da6cdfafb563615cc5798.tar.gz |
Merged revisions 78247 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r78247 | ezio.melotti | 2010-02-20 10:09:39 +0200 (Sat, 20 Feb 2010) | 1 line
#3426: os.path.abspath now returns unicode when its arg is unicode.
........
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 2449b0a1fb..81374d1a3f 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 10bbe3a3a2..89b3f614af 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 c2f3a4a47b..ef3429f2ad 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): |