Index: Lib/test/test_pep277.py =================================================================== --- Lib/test/test_pep277.py (revision 79315) +++ Lib/test/test_pep277.py (working copy) @@ -15,11 +15,6 @@ 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 @@ 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 @@ 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 @@ 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)