diff options
author | Florent Xicluna <florent.xicluna@gmail.com> | 2010-03-03 00:06:37 (GMT) |
---|---|---|
committer | Florent Xicluna <florent.xicluna@gmail.com> | 2010-03-03 00:06:37 (GMT) |
commit | 683a7e7c1859b13af797e3fd16e1df0c911be2be (patch) | |
tree | 8be3669f8370ac4269892bfd1761a3c7e89825d8 /Lib | |
parent | 4fd181c1fbc6f4daf6426f8714825e1ad2ce8768 (diff) | |
download | cpython-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')
-rw-r--r-- | Lib/test/test_pep277.py | 14 |
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)) |