Пример #1
0
    def test_list_local_files_with_unicode_chars(self):
        p = os.path.join
        open(p(self.directory, u"a"), "w").close()
        open(p(self.directory, u"a\u0300"), "w").close()
        open(p(self.directory, u"a\u0300-1"), "w").close()
        open(p(self.directory, u"a\u03001"), "w").close()
        open(p(self.directory, u"z"), "w").close()
        open(p(self.directory, u"\u00e6"), "w").close()
        os.mkdir(p(self.directory, u"a\u0300a"))
        open(p(self.directory, u"a\u0300a", u"a"), "w").close()
        open(p(self.directory, u"a\u0300a", u"z"), "w").close()
        open(p(self.directory, u"a\u0300a", u"\u00e6"), "w").close()

        file_generator = FileGenerator(None, None, None, None)
        values = list(el[0] for el in file_generator.list_files(self.directory, dir_op=True))
        expected_order = [
            os.path.join(self.directory, el)
            for el in [
                u"a",
                u"a\u0300",
                u"a\u0300-1",
                u"a\u03001",
                u"a\u0300a%sa" % os.path.sep,
                u"a\u0300a%sz" % os.path.sep,
                u"a\u0300a%s\u00e6" % os.path.sep,
                u"z",
                u"\u00e6",
            ]
        ]
        self.assertEqual(values, expected_order)
Пример #2
0
    def test_list_local_files_with_unicode_chars(self):
        p = os.path.join
        open(p(self.directory, u'a'), 'w').close()
        open(p(self.directory, u'a\u0300'), 'w').close()
        open(p(self.directory, u'a\u0300-1'), 'w').close()
        open(p(self.directory, u'a\u03001'), 'w').close()
        open(p(self.directory, u'z'), 'w').close()
        open(p(self.directory, u'\u00e6'), 'w').close()
        os.mkdir(p(self.directory, u'a\u0300a'))
        open(p(self.directory, u'a\u0300a', u'a'), 'w').close()
        open(p(self.directory, u'a\u0300a', u'z'), 'w').close()
        open(p(self.directory, u'a\u0300a', u'\u00e6'), 'w').close()

        file_generator = FileGenerator(None, None, None)
        values = list(
            el[0]
            for el in file_generator.list_files(self.directory, dir_op=True))
        expected_order = [
            os.path.join(self.directory, el) for el in [
                u"a", u"a\u0300", u"a\u0300-1", u"a\u03001",
                u"a\u0300a%sa" % os.path.sep,
                u"a\u0300a%sz" % os.path.sep,
                u"a\u0300a%s\u00e6" % os.path.sep, u"z", u"\u00e6"
            ]
        ]
        self.assertEqual(values, expected_order)
Пример #3
0
 def test_error_raised_on_decoding_error(self, listdir_mock):
     # On Python3, sys.getdefaultencoding
     file_generator = FileGenerator(None, None, None, None)
     # utf-8 encoding for U+2713.
     listdir_mock.return_value = [b'\xe2\x9c\x93']
     with self.assertRaises(FileDecodingError):
         list(file_generator.list_files(self.directory, dir_op=True))
Пример #4
0
 def test_error_raised_on_decoding_error(self, listdir_mock):
     # On Python3, sys.getdefaultencoding
     file_generator = FileGenerator(None, None, None)
     # utf-8 encoding for U+2713.
     listdir_mock.return_value = [b'\xe2\x9c\x93']
     with self.assertRaises(FileDecodingError):
         list(file_generator.list_files(self.directory, dir_op=True))
Пример #5
0
    def test_list_files_is_in_sorted_order(self):
        p = os.path.join
        open(p(self.directory, "test-123.txt"), "w").close()
        open(p(self.directory, "test-321.txt"), "w").close()
        open(p(self.directory, "test123.txt"), "w").close()
        open(p(self.directory, "test321.txt"), "w").close()
        os.mkdir(p(self.directory, "test"))
        open(p(self.directory, "test", "foo.txt"), "w").close()

        file_generator = FileGenerator(None, None, None, None)
        values = list(el[0] for el in file_generator.list_files(self.directory, dir_op=True))
        self.assertEqual(values, list(sorted(values)))
Пример #6
0
 def test_error_raised_on_decoding_error(self, listdir_mock):
     # On Python3, sys.getdefaultencoding
     file_generator = FileGenerator(None, None, None)
     # utf-8 encoding for U+2713.
     listdir_mock.return_value = [b'\xe2\x9c\x93']
     list(file_generator.list_files(self.directory, dir_op=True))
     # Ensure the message was added to the result queue and is
     # being skipped.
     self.assertFalse(file_generator.result_queue.empty())
     warning_message = file_generator.result_queue.get()
     self.assertIn("warning: Skipping file ", warning_message.message)
     self.assertIn("Please check your locale settings.",
                   warning_message.message)
Пример #7
0
 def test_error_raised_on_decoding_error(self, listdir_mock):
     # On Python3, sys.getdefaultencoding
     file_generator = FileGenerator(None, None, None)
     # utf-8 encoding for U+2713.
     listdir_mock.return_value = [b'\xe2\x9c\x93']
     list(file_generator.list_files(self.directory, dir_op=True))
     # Ensure the message was added to the result queue and is
     # being skipped.
     self.assertFalse(file_generator.result_queue.empty())
     warning_message = file_generator.result_queue.get()
     self.assertIn("warning: Skipping file ", warning_message.message)
     self.assertIn("Please check your locale settings.",
                   warning_message.message)
Пример #8
0
    def test_list_files_is_in_sorted_order(self):
        p = os.path.join
        open(p(self.directory, 'test-123.txt'), 'w').close()
        open(p(self.directory, 'test-321.txt'), 'w').close()
        open(p(self.directory, 'test123.txt'), 'w').close()
        open(p(self.directory, 'test321.txt'), 'w').close()
        os.mkdir(p(self.directory, 'test'))
        open(p(self.directory, 'test', 'foo.txt'), 'w').close()

        file_generator = FileGenerator(None, None, None, None)
        values = list(
            el[0]
            for el in file_generator.list_files(self.directory, dir_op=True))
        self.assertEqual(values, list(sorted(values)))
Пример #9
0
    def test_list_files_is_in_sorted_order(self):
        p = os.path.join
        open(p(self.directory, 'test-123.txt'), 'w').close()
        open(p(self.directory, 'test-321.txt'), 'w').close()
        open(p(self.directory, 'test123.txt'), 'w').close()
        open(p(self.directory, 'test321.txt'), 'w').close()
        os.mkdir(p(self.directory, 'test'))
        open(p(self.directory, 'test', 'foo.txt'), 'w').close()

        file_generator = FileGenerator(None, None, None)
        values = list(el[0] for el in file_generator.list_files(
            self.directory, dir_op=True))
        ref_vals = list(sorted(values,
                               key=lambda items: items.replace(os.sep, '/')))
        self.assertEqual(values, ref_vals)
Пример #10
0
 def test_list_files_with_invalid_timestamp(self, stat_mock):
     stat_mock.return_value = 9, None
     open(os.path.join(self.directory, 'test'), 'w').close()
     file_generator = FileGenerator(None, None, None)
     value = list(file_generator.list_files(self.directory, dir_op=True))[0]
     self.assertIs(value[1]['LastModified'], EPOCH_TIME)
Пример #11
0
 def test_list_files_with_invalid_timestamp(self, stat_mock):
     stat_mock.return_value = 9, None
     open(os.path.join(self.directory, 'test'), 'w').close()
     file_generator = FileGenerator(None, None, None)
     value = list(file_generator.list_files(self.directory, dir_op=True))[0]
     self.assertIs(value[1]['LastModified'], EPOCH_TIME)