コード例 #1
0
    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))
コード例 #2
0
    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)
コード例 #3
0
    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)
コード例 #4
0
ファイル: test_encodingutil.py プロジェクト: drewp/tahoe-lafs
    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)
コード例 #5
0
    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))
コード例 #6
0
    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)
コード例 #7
0
    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)
コード例 #8
0
ファイル: test_encodingutil.py プロジェクト: drewp/tahoe-lafs
    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)
コード例 #9
0
    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)
コード例 #10
0
    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)
コード例 #11
0
    def test_unicode_platform(self):
        matrix = {
            'linux2': False,
            'openbsd4': False,
            'win32': True,
            'darwin': True,
        }

        _reload()
        self.failUnlessReallyEqual(unicode_platform(), matrix[self.platform])
コード例 #12
0
ファイル: test_encodingutil.py プロジェクト: drewp/tahoe-lafs
    def test_unicode_platform(self):
        matrix = {
          'linux2': False,
          'openbsd4': False,
          'win32':  True,
          'darwin': True,
        }

        _reload()
        self.failUnlessReallyEqual(unicode_platform(), matrix[self.platform])
コード例 #13
0
ファイル: test_encodingutil.py プロジェクト: drewp/tahoe-lafs
 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
コード例 #14
0
    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])
コード例 #15
0
    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])
コード例 #16
0
 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
コード例 #17
0
    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)
コード例 #18
0
    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)
コード例 #19
0
    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))
コード例 #20
0
    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)
コード例 #21
0
ファイル: test_encodingutil.py プロジェクト: drewp/tahoe-lafs
    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))
コード例 #22
0
ファイル: test_encodingutil.py プロジェクト: drewp/tahoe-lafs
    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)
コード例 #23
0
    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)
コード例 #24
0
    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)
コード例 #25
0
ファイル: test_encodingutil.py プロジェクト: drewp/tahoe-lafs
    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)
コード例 #26
0
    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)
コード例 #27
0
    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')
コード例 #28
0
    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')
コード例 #29
0
    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")
コード例 #30
0
    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
コード例 #31
0
ファイル: test_encodingutil.py プロジェクト: drewp/tahoe-lafs
    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
コード例 #32
0
 def tearDown(self):
     _reload()
コード例 #33
0
 def tearDown(self):
     sys.platform = self.original_platform
     _reload()
コード例 #34
0
 def test_unicode_platform_py3(self):
     _reload()
     self.failUnlessReallyEqual(unicode_platform(), True)
コード例 #35
0
    def test_unicode_platform(self):
        matrix = {"linux2": False, "linux3": False, "openbsd4": False, "win32": True, "darwin": True}

        _reload()
        self.failUnlessReallyEqual(unicode_platform(), matrix[self.platform])
コード例 #36
0
 def tearDown(self):
     _reload()
コード例 #37
0
 def tearDown(self):
     sys.platform = self.original_platform
     _reload()