diff options
-rw-r--r-- | tablib/formats/_html.py | 6 | ||||
-rw-r--r-- | tablib/packages/openpyxl3/reader/excel.py | 6 | ||||
-rwxr-xr-x | test_tablib.py | 10 |
3 files changed, 15 insertions, 7 deletions
diff --git a/tablib/formats/_html.py b/tablib/formats/_html.py index c516e31..7bb77f0 100644 --- a/tablib/formats/_html.py +++ b/tablib/formats/_html.py @@ -5,15 +5,15 @@ import sys - if sys.version_info[0] > 2: - from io import StringIO + from io import BytesIO as StringIO from tablib.packages import markup3 as markup else: from cStringIO import StringIO from tablib.packages import markup import tablib +from tablib.compat import unicode import codecs BOOK_ENDINGS = 'h3' @@ -50,7 +50,7 @@ def export_set(dataset): wrapper = codecs.getwriter("utf8")(stream) wrapper.writelines(unicode(page)) - return stream.getvalue() + return stream.getvalue().decode('utf-8') def export_book(databook): diff --git a/tablib/packages/openpyxl3/reader/excel.py b/tablib/packages/openpyxl3/reader/excel.py index 3fee695..1052af5 100644 --- a/tablib/packages/openpyxl3/reader/excel.py +++ b/tablib/packages/openpyxl3/reader/excel.py @@ -58,11 +58,15 @@ def load_workbook(filename, use_iterators = False): """ - if isinstance(filename, file): + try: # fileobject must have been opened with 'rb' flag # it is required by zipfile if 'b' not in filename.mode: raise OpenModeError("File-object must be opened in binary mode") + except AttributeError: + # filename is not an object + # it doesn't have mode attribute + pass try: archive = ZipFile(filename, 'r', ZIP_DEFLATED) diff --git a/test_tablib.py b/test_tablib.py index 6125408..0afa1f9 100755 --- a/test_tablib.py +++ b/test_tablib.py @@ -1,13 +1,12 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- - """Tests for Tablib.""" import unittest import sys import os import tablib -from tablib.compat import markup, unicode +from tablib.compat import markup, unicode, is_py3 @@ -309,7 +308,12 @@ class TablibTestCase(unittest.TestCase): def test_unicode_append(self): """Passes in a single unicode character and exports.""" - new_row = (u'å', u'é') + if is_py3: + new_row = ('å', 'é') + else: + exec("new_row = (u'å', u'é')") + + data.append(new_row) data.json |