Index: Lib/test/test_os.py =================================================================== --- Lib/test/test_os.py (revision 72347) +++ Lib/test/test_os.py (working copy) @@ -8,6 +8,7 @@ import warnings import sys import shutil +import unicodedata from test import support # Tests creating TESTFN @@ -701,7 +702,10 @@ self.assertRaises(OverflowError, os.setregid, 0, 1<<32) class Pep383Tests(unittest.TestCase): - filenames = [b'foo\xf6bar', 'foo\xf6bar'.encode("utf-8")] + if sys.platform == 'darwin': + filenames = ['foo\xf6bar'.encode("utf-8")] + else: + filenames = [b'foo\xf6bar', 'foo\xf6bar'.encode("utf-8")] def setUp(self): self.fsencoding = sys.getfilesystemencoding() @@ -720,8 +724,12 @@ sys.setfilesystemencoding(self.fsencoding) def test_listdir(self): - expected = set(self.unicodefn) - found = set(os.listdir(support.TESTFN)) + # Some filesystems (e.g. HFS+) yield NFD-normalized + # filenames, so normalize before comparing. + def normalize(s): + return unicodedata.normalize('NFD', s) + expected = set(normalize(s) for s in self.unicodefn) + found = set(normalize(s) for s in os.listdir(support.TESTFN)) self.assertEquals(found, expected) def test_open(self):