From 8aa5a581d3b85d44bbad33e9ad1148430f9aba45 Mon Sep 17 00:00:00 2001 From: Florent Xicluna Date: Thu, 25 Mar 2010 20:33:49 +0000 Subject: [PATCH] #8207: Fix test_pep277 on OS X --- Lib/test/test_pep277.py | 27 ++++++++++++++++++--------- Misc/NEWS | 4 ++-- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/Lib/test/test_pep277.py b/Lib/test/test_pep277.py index fae2c6fd92..7b527de3d7 100644 --- a/Lib/test/test_pep277.py +++ b/Lib/test/test_pep277.py @@ -15,11 +15,6 @@ filenames = [ u'\u66e8\u66e9\u66eb', u'\u66e8\u05e9\u3093\u0434\u0393\xdf', # Specific code points: fn, NFC(fn) and NFKC(fn) all differents - u'\u2000\u2000\u2000A', - u'\u2001\u2001\u2001A', - u'\u2003\u2003\u2003A', # == NFC(u'\u2001\u2001\u2001A') - u'\u0020\u0020\u0020A', # u'\u0020' == u' ' == NFKC(u'\u2000') - # u'\u0020' == NFKC(u'\u2001') == NFKC(u'\u2003') u'\u1fee\u1ffd', # Specific code points: NFC(fn), NFD(fn), NFKC(fn) and NFKD(fn) all differents u'\u0385\u03d3\u03d4', @@ -28,6 +23,22 @@ filenames = [ u'\u1e9b\u1fc1\u1fcd\u1fce\u1fcf\u1fdd\u1fde\u1fdf\u1fed', ] +# Mac OS X decomposes Unicode names, using Normal Form D. +# http://developer.apple.com/mac/library/qa/qa2001/qa1173.html +# "However, most volume formats do not follow the exact specification for +# these normal forms. For example, HFS Plus uses a variant of Normal Form D +# in which U+2000 through U+2FFF, U+F900 through U+FAFF, and U+2F800 through +# U+2FAFF are not decomposed." +if sys.platform != 'darwin': + filenames.extend([ + # Specific code points: fn, NFC(fn) and NFKC(fn) all differents + u'\u1fee\u1ffd\ufad1', + u'\u2000\u2000\u2000A', + u'\u2001\u2001\u2001A', + u'\u2003\u2003\u2003A', # == NFC(u'\u2001\u2001\u2001A') + u'\u0020\u0020\u0020A', # u'\u0020' == u' ' == NFKC(u'\u2000') == + # NFKC(u'\u2001') == NFKC(u'\u2003') +]) # Destroy directory dirname and all files under it, to one level. def deltree(dirname): @@ -114,8 +125,7 @@ class UnicodeFileTests(unittest.TestCase): files = set(normalize('NFD', file) for file in files) for name in others: if sys.platform == 'darwin' and normalize('NFD', name) in files: - # Mac OS X decomposes Unicode names, using Normal Form D. - # http://developer.apple.com/mac/library/qa/qa2001/qa1173.html + # Mac OS X decomposes Unicode names. See comment above. os.stat(name) continue self._apply_failure(open, name, IOError) @@ -132,8 +142,7 @@ class UnicodeFileTests(unittest.TestCase): f2 = os.listdir(unicode(test_support.TESTFN, sys.getfilesystemencoding())) if sys.platform == 'darwin': - # Mac OS X returns canonically decomposed Unicode (Normal Form D) - # http://developer.apple.com/mac/library/qa/qa2001/qa1173.html + # Mac OS X decomposes Unicode names. See comment above. sf0 = set(normalize('NFD', unicode(f)) for f in self.files) f2 = [normalize('NFD', unicode(f)) for f in f2] sf2 = set(os.path.join(unicode(test_support.TESTFN), f) for f in f2) diff --git a/Misc/NEWS b/Misc/NEWS index d834e10a1e..15807689d4 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -147,8 +147,8 @@ C-API Tests ----- -- Issue #8180: Fix test_pep277 on OS X and add more tests for special Unicode - normalization cases. +- Issue #8180 and #8207: Fix test_pep277 on OS X and add more tests for special + Unicode normalization cases. - Issue #7783: test.test_support.open_urlresource invalidates the outdated files from the local cache. -- 2.40.0