mirror of
https://github.com/python/cpython.git
synced 2025-07-29 22:24:49 +00:00
skip tests with a non-ascii cwd when the file system encoding is ascii
This commit is contained in:
parent
18d5a69669
commit
9e9af21d45
4 changed files with 33 additions and 18 deletions
|
@ -174,6 +174,19 @@ class AllCommonTest(unittest.TestCase):
|
||||||
|
|
||||||
self.assertRaises(TypeError, genericpath.samefile)
|
self.assertRaises(TypeError, genericpath.samefile)
|
||||||
|
|
||||||
|
|
||||||
|
# XXX at some point this should probably go in some class that contains common
|
||||||
|
# tests for all test_*path modules.
|
||||||
|
def _issue3426(self, cwd, abspath):
|
||||||
|
# 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
|
||||||
|
with test_support.temp_cwd(cwd):
|
||||||
|
for path in ('', 'foo', 'f\xf2\xf2', '/foo', 'C:\\'):
|
||||||
|
self.assertIsInstance(abspath(path), str)
|
||||||
|
for upath in (u'', u'fuu', u'f\xf9\xf9', u'/fuu', u'U:\\'):
|
||||||
|
self.assertIsInstance(abspath(upath), unicode)
|
||||||
|
|
||||||
|
|
||||||
def test_main():
|
def test_main():
|
||||||
test_support.run_unittest(AllCommonTest)
|
test_support.run_unittest(AllCommonTest)
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import macpath
|
import macpath
|
||||||
from test import test_support
|
from test import test_support
|
||||||
import unittest
|
import unittest
|
||||||
|
import test_genericpath
|
||||||
|
|
||||||
|
|
||||||
class MacPathTestCase(unittest.TestCase):
|
class MacPathTestCase(unittest.TestCase):
|
||||||
|
@ -8,15 +9,11 @@ class MacPathTestCase(unittest.TestCase):
|
||||||
def test_abspath(self):
|
def test_abspath(self):
|
||||||
self.assertEqual(macpath.abspath("xx:yy"), "xx:yy")
|
self.assertEqual(macpath.abspath("xx:yy"), "xx:yy")
|
||||||
|
|
||||||
# Issue 3426: check that abspath retuns unicode when the arg is unicode
|
def test_abspath_with_ascii_cwd(self):
|
||||||
# and str when it's str, with both ASCII and non-ASCII cwds
|
test_genericpath._issue3426(self, u'cwd', macpath.abspath)
|
||||||
for cwd in (u'cwd', u'\xe7w\xf0'):
|
|
||||||
with test_support.temp_cwd(cwd):
|
|
||||||
for path in ('', 'foo', 'f\xf2\xf2', '/foo', 'C:\\'):
|
|
||||||
self.assertIsInstance(macpath.abspath(path), str)
|
|
||||||
for upath in (u'', u'fuu', u'f\xf9\xf9', u'/fuu', u'U:\\'):
|
|
||||||
self.assertIsInstance(macpath.abspath(upath), unicode)
|
|
||||||
|
|
||||||
|
def test_abspath_with_nonascii_cwd(self):
|
||||||
|
test_genericpath._issue3426(self, u'\xe7w\xf0', macpath.abspath)
|
||||||
|
|
||||||
def test_isabs(self):
|
def test_isabs(self):
|
||||||
isabs = macpath.isabs
|
isabs = macpath.isabs
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
import unittest
|
import unittest
|
||||||
from test import test_support
|
from test import test_support
|
||||||
|
|
||||||
|
import test_genericpath
|
||||||
|
|
||||||
import posixpath, os
|
import posixpath, os
|
||||||
from posixpath import realpath, abspath, dirname, basename
|
from posixpath import realpath, abspath, dirname, basename
|
||||||
|
|
||||||
|
@ -382,18 +384,14 @@ class PosixPathTest(unittest.TestCase):
|
||||||
|
|
||||||
def test_abspath(self):
|
def test_abspath(self):
|
||||||
self.assertIn("foo", posixpath.abspath("foo"))
|
self.assertIn("foo", 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
|
|
||||||
for cwd in (u'cwd', u'\xe7w\xf0'):
|
|
||||||
with test_support.temp_cwd(cwd):
|
|
||||||
for path in ('', 'foo', 'f\xf2\xf2', '/foo', 'C:\\'):
|
|
||||||
self.assertIsInstance(posixpath.abspath(path), str)
|
|
||||||
for upath in (u'', u'fuu', u'f\xf9\xf9', u'/fuu', u'U:\\'):
|
|
||||||
self.assertIsInstance(posixpath.abspath(upath), unicode)
|
|
||||||
|
|
||||||
self.assertRaises(TypeError, posixpath.abspath)
|
self.assertRaises(TypeError, posixpath.abspath)
|
||||||
|
|
||||||
|
def test_abspath_with_ascii_cwd(self):
|
||||||
|
test_genericpath._issue3426(self, u'cwd', posixpath.abspath)
|
||||||
|
|
||||||
|
def test_abspath_with_nonascii_cwd(self):
|
||||||
|
test_genericpath._issue3426(self, u'\xe7w\xf0', posixpath.abspath)
|
||||||
|
|
||||||
def test_realpath(self):
|
def test_realpath(self):
|
||||||
self.assertIn("foo", realpath("foo"))
|
self.assertIn("foo", realpath("foo"))
|
||||||
self.assertRaises(TypeError, posixpath.realpath)
|
self.assertRaises(TypeError, posixpath.realpath)
|
||||||
|
|
|
@ -397,6 +397,13 @@ def temp_cwd(name='tempcwd', quiet=False):
|
||||||
the CWD, an error is raised. If it's True, only a warning is raised
|
the CWD, an error is raised. If it's True, only a warning is raised
|
||||||
and the original CWD is used.
|
and the original CWD is used.
|
||||||
"""
|
"""
|
||||||
|
if isinstance(name, unicode):
|
||||||
|
try:
|
||||||
|
name = name.encode(sys.getfilesystemencoding() or 'ascii')
|
||||||
|
except UnicodeEncodeError:
|
||||||
|
if not quiet:
|
||||||
|
raise unittest.SkipTest('unable to encode the cwd name with '
|
||||||
|
'the filesystem encoding.')
|
||||||
saved_dir = os.getcwd()
|
saved_dir = os.getcwd()
|
||||||
is_temporary = False
|
is_temporary = False
|
||||||
try:
|
try:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue