Ejemplo n.º 1
0
    def test_excel_csv_import_survives_japanes_utf8(self):
        some_kanji = u'\u65b0\u4e16\u7d00\u30a8\u30f4\u30a1\u30f3\u30b2\u30ea\u30aa\u30f3'
        japanese_file = StringIO()
        japanese_file.write(some_kanji.encode('utf-8'))
        japanese_file.name = 'filename'
        japanese_file.size = 10
        japanese_file.seek(0)

        worksheet_from_csv(Worksheet(), japanese_file, 1, 1, True)
    def test_excel_csv_import_survives_japanes_utf8(self):
        some_kanji = u'\u65b0\u4e16\u7d00\u30a8\u30f4\u30a1\u30f3\u30b2\u30ea\u30aa\u30f3'
        japanese_file = StringIO()
        japanese_file.write(some_kanji.encode('utf-8'))
        japanese_file.name = 'filename'
        japanese_file.size = 10
        japanese_file.seek(0)

        worksheet_from_csv(Worksheet(), japanese_file, 1, 1, True)
Ejemplo n.º 3
0
    def test_should_put_data_into_existing_worksheet_with_offset_for_excel_and_auto(
            self):
        for excel_encoding in [True, False]:
            csv = StringIO()
            csv.write('abc,123\n')
            csv.write('def, \n')
            csv.size = 10
            csv.seek(0)

            existing_worksheet = Worksheet()
            for row in range(1, 6):
                for col in range(1, 5):
                    existing_worksheet[col, row].formula = 'old'

            worksheet = worksheet_from_csv(existing_worksheet, csv, 2, 3,
                                           excel_encoding)

            self.assertEquals(worksheet.A1.formula, 'old')
            self.assertEquals(worksheet.B1.formula, 'old')
            self.assertEquals(worksheet.A2.formula, 'old')
            self.assertEquals(worksheet.B3.formula, 'abc')
            self.assertEquals(worksheet.C3.formula, '123')
            self.assertEquals(worksheet.B4.formula, 'def')
            self.assertEquals(worksheet.C4.formula, ' ')
            self.assertEquals(worksheet.C5.formula, 'old')
            self.assertEquals(worksheet.D3.formula, 'old')
            self.assertEquals(worksheet.B5.formula, 'old')
    def test_should_put_data_into_existing_worksheet_with_offset_for_excel_and_auto(self):
        for excel_encoding in [True, False]:
            csv = StringIO()
            csv.write('abc,123\n')
            csv.write('def, \n')
            csv.size = 10
            csv.seek(0)

            existing_worksheet = Worksheet()
            for row in range(1, 6):
                for col in range(1, 5):
                    existing_worksheet[col, row].formula = 'old'

            worksheet = worksheet_from_csv(existing_worksheet, csv, 2, 3, excel_encoding)

            self.assertEquals(worksheet.A1.formula, 'old')
            self.assertEquals(worksheet.B1.formula, 'old')
            self.assertEquals(worksheet.A2.formula, 'old')
            self.assertEquals(worksheet.B3.formula, 'abc')
            self.assertEquals(worksheet.C3.formula, '123')
            self.assertEquals(worksheet.B4.formula, 'def')
            self.assertEquals(worksheet.C4.formula, ' ')
            self.assertEquals(worksheet.C5.formula, 'old')
            self.assertEquals(worksheet.D3.formula, 'old')
            self.assertEquals(worksheet.B5.formula, 'old')
Ejemplo n.º 5
0
    def test_autodetect_import_csv_raises_on_null_bytes(self):
        bin_file = StringIO()
        bin_file.write("\xFF\x00\xFF")
        bin_file.name = 'filename'
        bin_file.size = 10
        bin_file.seek(0)

        self.assertRaises(
            DirigibleImportError,
            lambda: worksheet_from_csv(Worksheet(), bin_file, 1, 1, False))
    def test_autodetect_import_csv_raises_on_null_bytes(self):
        bin_file = StringIO()
        bin_file.write("\xFF\x00\xFF")
        bin_file.name = 'filename'
        bin_file.size = 10
        bin_file.seek(0)

        self.assertRaises(DirigibleImportError,
                lambda : worksheet_from_csv(Worksheet(), bin_file, 1, 1, False)
        )
Ejemplo n.º 7
0
    def test_autodetect_can_handle_japanese_utf8(self):
        some_kanji = u'\u65b0\u4e16\u7d00\u30a8\u30f4\u30a1\u30f3\u30b2\u30ea\u30aa\u30f3'
        japanese_file = StringIO()
        japanese_file.write(some_kanji.encode('utf-8'))
        japanese_file.name = 'filename'
        japanese_file.size = 10
        japanese_file.seek(0)

        worksheet = worksheet_from_csv(Worksheet(), japanese_file, 1, 1, False)

        self.assertEquals(worksheet.A1.formula, some_kanji)
    def test_autodetect_can_handle_japanese_utf8(self):
        some_kanji = u'\u65b0\u4e16\u7d00\u30a8\u30f4\u30a1\u30f3\u30b2\u30ea\u30aa\u30f3'
        japanese_file = StringIO()
        japanese_file.write(some_kanji.encode('utf-8'))
        japanese_file.name = 'filename'
        japanese_file.size = 10
        japanese_file.seek(0)

        worksheet = worksheet_from_csv(Worksheet(), japanese_file, 1, 1, False)

        self.assertEquals(worksheet.A1.formula, some_kanji)
Ejemplo n.º 9
0
    def test_autodetect_csv_import_handles_carriage_returns_in_cells(self):
        excel_csv = StringIO()
        excel_csv.write(u'"carriage\nreturn!"\r\n'.encode('utf-8'))
        excel_csv.write(u"normal line\r\n".encode('utf-8'))
        excel_csv.name = 'filename'
        excel_csv.size = 10
        excel_csv.seek(0)

        worksheet = worksheet_from_csv(Worksheet(), excel_csv, 2, 3, False)

        self.assertEquals(worksheet.B3.formula, "carriage\nreturn!")
        self.assertEquals(worksheet.B4.formula, "normal line")
Ejemplo n.º 10
0
    def test_excel_csv_import_recognises_accents_and_currency_symbols(self):
        excel_csv = StringIO()
        excel_csv.write(u"\xe9".encode('windows-1252'))
        excel_csv.write(u"\xa3".encode('windows-1252'))
        excel_csv.write(u"\u20ac".encode('windows-1252'))
        excel_csv.name = 'filename'
        excel_csv.size = 10
        excel_csv.seek(0)

        worksheet = worksheet_from_csv(Worksheet(), excel_csv, 3, 4, True)

        self.assertEquals(worksheet.C4.formula, u"\xe9\xa3\u20ac")
    def test_autodetect_csv_import_handles_carriage_returns_in_cells(self):
        excel_csv = StringIO()
        excel_csv.write(u'"carriage\nreturn!"\r\n'.encode('utf-8'))
        excel_csv.write(u"normal line\r\n".encode('utf-8'))
        excel_csv.name = 'filename'
        excel_csv.size = 10
        excel_csv.seek(0)

        worksheet = worksheet_from_csv(Worksheet(), excel_csv, 2, 3, False)

        self.assertEquals(worksheet.B3.formula, "carriage\nreturn!")
        self.assertEquals(worksheet.B4.formula, "normal line")
    def test_excel_csv_import_recognises_accents_and_currency_symbols(self):
        excel_csv = StringIO()
        excel_csv.write(u"\xe9".encode('windows-1252'))
        excel_csv.write(u"\xa3".encode('windows-1252'))
        excel_csv.write(u"\u20ac".encode('windows-1252'))
        excel_csv.name = 'filename'
        excel_csv.size = 10
        excel_csv.seek(0)

        worksheet = worksheet_from_csv(Worksheet(), excel_csv, 3, 4, True)

        self.assertEquals(worksheet.C4.formula, u"\xe9\xa3\u20ac")
Ejemplo n.º 13
0
    def test_autodetect_import_csv_raises_on_failure_to_detect_encoding(
            self, mock_UniversalDetector):
        mock_detector = Mock()
        mock_UniversalDetector.return_value = mock_detector
        mock_detector.result = {'encoding': None}

        mock_file = StringIO()
        mock_file.write("\xFF\x00\xFF")
        mock_file.name = 'filename'
        mock_file.size = 10

        self.assertRaises(
            DirigibleImportError,
            lambda: worksheet_from_csv(Worksheet(), mock_file, 1, 1, False))
    def test_autodetect_import_csv_raises_on_failure_to_detect_encoding(
            self, mock_UniversalDetector
    ):
        mock_detector = Mock()
        mock_UniversalDetector.return_value = mock_detector
        mock_detector.result = {'encoding':None}

        mock_file = StringIO()
        mock_file.write("\xFF\x00\xFF")
        mock_file.name = 'filename'
        mock_file.size = 10

        self.assertRaises(DirigibleImportError,
                lambda : worksheet_from_csv(Worksheet(), mock_file, 1, 1, False)
        )