summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_pep277.py
diff options
context:
space:
mode:
authorFlorent Xicluna <florent.xicluna@gmail.com>2010-03-03 00:06:37 (GMT)
committerFlorent Xicluna <florent.xicluna@gmail.com>2010-03-03 00:06:37 (GMT)
commit683a7e7c1859b13af797e3fd16e1df0c911be2be (patch)
tree8be3669f8370ac4269892bfd1761a3c7e89825d8 /Lib/test/test_pep277.py
parent4fd181c1fbc6f4daf6426f8714825e1ad2ce8768 (diff)
downloadcpython-683a7e7c1859b13af797e3fd16e1df0c911be2be.zip
cpython-683a7e7c1859b13af797e3fd16e1df0c911be2be.tar.gz
cpython-683a7e7c1859b13af797e3fd16e1df0c911be2be.tar.bz2
Merged revisions 78585,78594,78606 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r78585 | florent.xicluna | 2010-03-02 22:34:45 +0100 (mar, 02 mar 2010) | 2 lines Tentatively enable test_pep277 on all platforms. ........ r78594 | florent.xicluna | 2010-03-02 23:34:11 +0100 (mar, 02 mar 2010) | 2 lines Test test_pep277 is only relevant for Unicode-friendly filesystems. ........ r78606 | florent.xicluna | 2010-03-03 00:56:38 +0100 (mer, 03 mar 2010) | 2 lines Fix wording. ........
Diffstat (limited to 'Lib/test/test_pep277.py')
-rw-r--r--Lib/test/test_pep277.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/Lib/test/test_pep277.py b/Lib/test/test_pep277.py
index 11039ac..a8bb349 100644
--- a/Lib/test/test_pep277.py
+++ b/Lib/test/test_pep277.py
@@ -2,8 +2,6 @@
# open, os.open, os.stat. os.listdir, os.rename, os.remove, os.mkdir, os.chdir, os.rmdir
import sys, os, unittest
from test import support
-if not os.path.supports_unicode_filenames:
- raise unittest.SkipTest("test works only on NT+")
filenames = [
'abc',
@@ -36,7 +34,12 @@ class UnicodeFileTests(unittest.TestCase):
except OSError:
pass
for name in self.files:
- f = open(name, 'wb')
+ try:
+ f = open(name, 'wb')
+ except UnicodeEncodeError:
+ if not os.path.supports_unicode_filenames:
+ raise unittest.SkipTest("only NT+ and systems with Unicode"
+ "-friendly filesystem encoding")
f.write((name+'\n').encode("utf-8"))
f.close()
os.stat(name)
@@ -51,6 +54,9 @@ class UnicodeFileTests(unittest.TestCase):
raise support.TestFailed("Expected to fail calling '%s(%r)'"
% (fn.__name__, filename))
except expected_exception as details:
+ # the "filename" exception attribute may be encoded
+ if isinstance(details.filename, bytes):
+ filename = filename.encode(sys.getfilesystemencoding())
if check_fn_in_exception and details.filename != filename:
raise support.TestFailed("Function '%s(%r) failed with "
"bad filename in the exception: %r"
@@ -80,7 +86,7 @@ class UnicodeFileTests(unittest.TestCase):
f1 = os.listdir(support.TESTFN)
f2 = os.listdir(str(support.TESTFN.encode("utf-8"),
sys.getfilesystemencoding()))
- sf2 = set("\\".join((str(support.TESTFN), f))
+ sf2 = set(os.path.join(str(support.TESTFN), f)
for f in f2)
self.assertEqual(len(f1), len(self.files))
self.assertEqual(sf2, set(self.files))