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.
........
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 @@
         # 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')