def test_listdir_unicode(self): if "dirlist" not in dir(self): return try: u"test".encode(self.filesystem_encoding) except (LookupError, AttributeError): raise unittest.SkipTest( "This platform does not support the '%s' filesystem encoding " "that we are testing for the benefit of a different platform." % (self.filesystem_encoding,) ) def call_os_listdir(path): return self.dirlist self.patch(os, "listdir", call_os_listdir) def call_sys_getfilesystemencoding(): return self.filesystem_encoding self.patch(sys, "getfilesystemencoding", call_sys_getfilesystemencoding) _reload() filenames = listdir_unicode(u"/dummy") self.failUnlessEqual(set([normalize(fname) for fname in filenames]), set(TEST_FILENAMES))
def test_listdir_unicode(self): # What happens if latin1-encoded filenames are encountered on an UTF-8 # filesystem? def call_os_listdir(path): return [lumiere_nfc.encode('utf-8'), lumiere_nfc.encode('latin1')] self.patch(os, 'listdir', call_os_listdir) sys_filesystemencoding = 'utf-8' def call_sys_getfilesystemencoding(): return sys_filesystemencoding self.patch(sys, 'getfilesystemencoding', call_sys_getfilesystemencoding) _reload() self.failUnlessRaises(FilenameEncodingError, listdir_unicode, u'/dummy') # We're trying to list a directory whose name cannot be represented in # the filesystem encoding. This should fail. sys_filesystemencoding = 'ascii' _reload() self.failUnlessRaises(FilenameEncodingError, listdir_unicode, u'/' + lumiere_nfc)
def test_unicode_to_output(self, mock): if 'argv' not in dir(self): return mock.encoding = self.output_encoding _reload() self.failUnlessReallyEqual(unicode_to_output(lumiere_nfc), self.argv)
def test_listdir_unicode(self): if 'dirlist' not in dir(self): return try: u"test".encode(self.filesystem_encoding) except (LookupError, AttributeError): raise unittest.SkipTest( "This platform does not support the '%s' filesystem encoding " "that we are testing for the benefit of a different platform." % (self.filesystem_encoding, )) def call_os_listdir(path): return self.dirlist self.patch(os, 'listdir', call_os_listdir) def call_sys_getfilesystemencoding(): return self.filesystem_encoding self.patch(sys, 'getfilesystemencoding', call_sys_getfilesystemencoding) _reload() filenames = listdir_unicode(u'/dummy') self.failUnlessEqual(set([normalize(fname) for fname in filenames]), set(TEST_FILENAMES))
def test_listdir_unicode(self): # What happens if latin1-encoded filenames are encountered on an UTF-8 # filesystem? def call_os_listdir(path): return [ lumiere_nfc.encode('utf-8'), lumiere_nfc.encode('latin1') ] self.patch(os, 'listdir', call_os_listdir) sys_filesystemencoding = 'utf-8' def call_sys_getfilesystemencoding(): return sys_filesystemencoding self.patch(sys, 'getfilesystemencoding', call_sys_getfilesystemencoding) _reload() self.failUnlessRaises(FilenameEncodingError, listdir_unicode, u'/dummy') # We're trying to list a directory whose name cannot be represented in # the filesystem encoding. This should fail. sys_filesystemencoding = 'ascii' _reload() self.failUnlessRaises(FilenameEncodingError, listdir_unicode, u'/' + lumiere_nfc)
def test_argv_to_unicode(self, mock): if 'argv' not in dir(self): return mock.encoding = self.output_encoding argu = lumiere_nfc argv = self.argv _reload() self.failUnlessReallyEqual(argv_to_unicode(argv), argu)
def test_unicode_to_output(self): if 'argv' not in dir(self): return mock_stdout = MockStdout() mock_stdout.encoding = self.io_encoding self.patch(sys, 'stdout', mock_stdout) _reload() self.failUnlessReallyEqual(unicode_to_output(lumiere_nfc), self.argv)
def test_unicode_platform(self): matrix = { 'linux2': False, 'openbsd4': False, 'win32': True, 'darwin': True, } _reload() self.failUnlessReallyEqual(unicode_platform(), matrix[self.platform])
def test_no_unicode_normalization(self, mock): # Pretend to run on a Unicode platform. # We normalized to NFC in 1.7beta, but we now don't. orig_platform = sys.platform try: sys.platform = 'darwin' mock.return_value = [Artonwall_nfd] _reload() self.failUnlessReallyEqual(listdir_unicode(u'/dummy'), [Artonwall_nfd]) finally: sys.platform = orig_platform
def test_no_unicode_normalization(self): # Pretend to run on a Unicode platform. # listdir_unicode normalized to NFC in 1.7beta, but now doesn't. def call_os_listdir(path): return [Artonwall_nfd] self.patch(os, 'listdir', call_os_listdir) self.patch(sys, 'platform', 'darwin') _reload() self.failUnlessReallyEqual(listdir_unicode(u'/dummy'), [Artonwall_nfd])
def test_argv_to_unicode(self): if 'argv' not in dir(self): return mock_stdout = MockStdout() mock_stdout.encoding = self.io_encoding self.patch(sys, 'stdout', mock_stdout) argu = lumiere_nfc argv = self.argv _reload() self.failUnlessReallyEqual(argv_to_unicode(argv), argu)
def test_listdir_unicode(self, mock_listdir, mock_getfilesystemencoding): if 'dirlist' not in dir(self): return try: u"test".encode(self.filesystem_encoding) except (LookupError, AttributeError): raise unittest.SkipTest("This platform does not support the '%s' filesystem encoding " "that we are testing for the benefit of a different platform." % (self.filesystem_encoding,)) mock_listdir.return_value = self.dirlist mock_getfilesystemencoding.return_value = self.filesystem_encoding _reload() filenames = listdir_unicode(u'/dummy') self.failUnlessEqual(set([normalize(fname) for fname in filenames]), set(TEST_FILENAMES))
def test_listdir_unicode(self, mock_listdir, mock_getfilesystemencoding): # What happens if latin1-encoded filenames are encountered on an UTF-8 # filesystem? mock_listdir.return_value = [ lumiere_nfc.encode('utf-8'), lumiere_nfc.encode('latin1') ] mock_getfilesystemencoding.return_value = 'utf-8' _reload() self.failUnlessRaises(FilenameEncodingError, listdir_unicode, u'/dummy') # We're trying to list a directory whose name cannot be represented in # the filesystem encoding. This should fail. mock_getfilesystemencoding.return_value = 'ascii' _reload() self.failUnlessRaises(FilenameEncodingError, listdir_unicode, u'/' + lumiere_nfc)
def test_listdir_unicode(self, mock_listdir, mock_getfilesystemencoding): # What happens if latin1-encoded filenames are encountered on an UTF-8 # filesystem? mock_listdir.return_value = [ lumiere_nfc.encode('utf-8'), lumiere_nfc.encode('latin1')] mock_getfilesystemencoding.return_value = 'utf-8' _reload() self.failUnlessRaises(FilenameEncodingError, listdir_unicode, u'/dummy') # We're trying to list a directory whose name cannot be represented in # the filesystem encoding. This should fail. mock_getfilesystemencoding.return_value = 'ascii' _reload() self.failUnlessRaises(FilenameEncodingError, listdir_unicode, u'/' + lumiere_nfc)
def test_listdir_unicode(self): # What happens if latin1-encoded filenames are encountered on an UTF-8 # filesystem? def call_os_listdir(path): return [lumiere_nfc.encode("utf-8"), lumiere_nfc.encode("latin1")] self.patch(os, "listdir", call_os_listdir) sys_filesystemencoding = "utf-8" def call_sys_getfilesystemencoding(): return sys_filesystemencoding self.patch(sys, "getfilesystemencoding", call_sys_getfilesystemencoding) _reload() self.failUnlessRaises(FilenameEncodingError, listdir_unicode, u"/dummy") # We're trying to list a directory whose name cannot be represented in # the filesystem encoding. This should fail. sys_filesystemencoding = "ascii" _reload() self.failUnlessRaises(FilenameEncodingError, listdir_unicode, u"/" + lumiere_nfc)
def test_get_output_encoding(self, mock_stdout): mock_stdout.encoding = 'UTF-8' _reload() self.failUnlessReallyEqual(get_output_encoding(), 'utf-8') mock_stdout.encoding = 'cp65001' _reload() self.failUnlessReallyEqual(get_output_encoding(), 'utf-8') mock_stdout.encoding = 'koi8-r' expected = sys.platform == "win32" and 'utf-8' or 'koi8-r' _reload() self.failUnlessReallyEqual(get_output_encoding(), expected) mock_stdout.encoding = 'nonexistent_encoding' if sys.platform == "win32": _reload() self.failUnlessReallyEqual(get_output_encoding(), 'utf-8') else: self.failUnlessRaises(AssertionError, _reload)
def test_get_io_encoding(self): mock_stdout = MockStdout() self.patch(sys, "stdout", mock_stdout) mock_stdout.encoding = "UTF-8" _reload() self.failUnlessReallyEqual(get_io_encoding(), "utf-8") mock_stdout.encoding = "cp65001" _reload() self.failUnlessReallyEqual(get_io_encoding(), "utf-8") mock_stdout.encoding = "koi8-r" expected = sys.platform == "win32" and "utf-8" or "koi8-r" _reload() self.failUnlessReallyEqual(get_io_encoding(), expected) mock_stdout.encoding = "nonexistent_encoding" if sys.platform == "win32": _reload() self.failUnlessReallyEqual(get_io_encoding(), "utf-8") else: self.failUnlessRaises(AssertionError, _reload)
def test_get_io_encoding_not_from_stdout(self): preferredencoding = 'koi8-r' def call_locale_getpreferredencoding(): return preferredencoding self.patch(locale, 'getpreferredencoding', call_locale_getpreferredencoding) mock_stdout = MockStdout() self.patch(sys, 'stdout', mock_stdout) expected = sys.platform == "win32" and 'utf-8' or 'koi8-r' _reload() self.failUnlessReallyEqual(get_io_encoding(), expected) mock_stdout.encoding = None _reload() self.failUnlessReallyEqual(get_io_encoding(), expected) preferredencoding = None _reload() self.assertEqual(get_io_encoding(), 'utf-8')
def test_get_io_encoding_not_from_stdout(self): preferredencoding = 'koi8-r' def call_locale_getpreferredencoding(): return preferredencoding self.patch(locale, 'getpreferredencoding', call_locale_getpreferredencoding) mock_stdout = MockStdout() self.patch(sys, 'stdout', mock_stdout) expected = sys.platform == "win32" and 'utf-8' or 'koi8-r' _reload() self.failUnlessReallyEqual(get_io_encoding(), expected) mock_stdout.encoding = None _reload() self.failUnlessReallyEqual(get_io_encoding(), expected) preferredencoding = None _reload() self.failUnlessReallyEqual(get_io_encoding(), 'utf-8')
def test_get_io_encoding_not_from_stdout(self): preferredencoding = "koi8-r" def call_locale_getpreferredencoding(): return preferredencoding self.patch(locale, "getpreferredencoding", call_locale_getpreferredencoding) mock_stdout = MockStdout() self.patch(sys, "stdout", mock_stdout) expected = sys.platform == "win32" and "utf-8" or "koi8-r" _reload() self.failUnlessReallyEqual(get_io_encoding(), expected) mock_stdout.encoding = None _reload() self.failUnlessReallyEqual(get_io_encoding(), expected) preferredencoding = None _reload() self.failUnlessReallyEqual(get_io_encoding(), "utf-8")
def test_get_io_encoding_not_from_stdout(self, mock_locale_getpreferredencoding): locale # hush pyflakes mock_locale_getpreferredencoding.return_value = 'koi8-r' class DummyStdout: pass old_stdout = sys.stdout sys.stdout = DummyStdout() try: expected = sys.platform == "win32" and 'utf-8' or 'koi8-r' _reload() self.failUnlessReallyEqual(get_io_encoding(), expected) sys.stdout.encoding = None _reload() self.failUnlessReallyEqual(get_io_encoding(), expected) mock_locale_getpreferredencoding.return_value = None _reload() self.failUnlessReallyEqual(get_io_encoding(), 'utf-8') finally: sys.stdout = old_stdout
def test_get_output_encoding_not_from_stdout(self, mock_locale_getpreferredencoding): locale # hush pyflakes mock_locale_getpreferredencoding.return_value = 'koi8-r' class DummyStdout: pass old_stdout = sys.stdout sys.stdout = DummyStdout() try: expected = sys.platform == "win32" and 'utf-8' or 'koi8-r' _reload() self.failUnlessReallyEqual(get_output_encoding(), expected) sys.stdout.encoding = None _reload() self.failUnlessReallyEqual(get_output_encoding(), expected) mock_locale_getpreferredencoding.return_value = None _reload() self.failUnlessReallyEqual(get_output_encoding(), 'utf-8') finally: sys.stdout = old_stdout
def tearDown(self): _reload()
def tearDown(self): sys.platform = self.original_platform _reload()
def test_unicode_platform_py3(self): _reload() self.failUnlessReallyEqual(unicode_platform(), True)
def test_unicode_platform(self): matrix = {"linux2": False, "linux3": False, "openbsd4": False, "win32": True, "darwin": True} _reload() self.failUnlessReallyEqual(unicode_platform(), matrix[self.platform])