summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Moss <moss.paul@gmail.com>2016-03-18 18:17:19 +0000
committerPaul Moss <moss.paul@gmail.com>2016-03-18 18:17:19 +0000
commit8cf6770a76046f104c09d65b3bfba4a2853484d8 (patch)
treec49cbf25c8c181bee7adf377ddc328b22f12f647
parentd4c66c7a4e5363a1dd75f5d9680822e885f68167 (diff)
downloadtablib-8cf6770a76046f104c09d65b3bfba4a2853484d8.tar.gz
Add HTML format to the book_export test and fix the format to work properly
-rw-r--r--tablib/formats/_html.py15
-rwxr-xr-xtest_tablib.py1
2 files changed, 10 insertions, 6 deletions
diff --git a/tablib/formats/_html.py b/tablib/formats/_html.py
index 0b45f14..655e74c 100644
--- a/tablib/formats/_html.py
+++ b/tablib/formats/_html.py
@@ -31,7 +31,7 @@ def export_set(dataset):
page.table.open()
if dataset.headers is not None:
- new_header = [item if item is not None else '' for item in dataset.headers]
+ new_header = [item if item is not None else '' for item in dataset.headers]
page.thead.open()
headers = markup.oneliner.th(new_header)
@@ -39,7 +39,7 @@ def export_set(dataset):
page.thead.close()
for row in dataset:
- new_row = [item if item is not None else '' for item in row]
+ new_row = [item if item is not None else '' for item in row]
html_row = markup.oneliner.td(new_row)
page.tr(html_row)
@@ -58,10 +58,13 @@ def export_book(databook):
stream = StringIO()
+ # Allow unicode characters in output
+ wrapper = codecs.getwriter("utf8")(stream)
+
for i, dset in enumerate(databook._datasets):
title = (dset.title if dset.title else 'Set %s' % (i))
- stream.write('<%s>%s</%s>\n' % (BOOK_ENDINGS, title, BOOK_ENDINGS))
- stream.write(dset.html)
- stream.write('\n')
+ wrapper.write('<%s>%s</%s>\n' % (BOOK_ENDINGS, title, BOOK_ENDINGS))
+ wrapper.write(dset.html)
+ wrapper.write('\n')
- return stream.getvalue()
+ return stream.getvalue().decode('utf-8')
diff --git a/test_tablib.py b/test_tablib.py
index 30bbacf..be41ee7 100755
--- a/test_tablib.py
+++ b/test_tablib.py
@@ -392,6 +392,7 @@ class TablibTestCase(unittest.TestCase):
book.xls
book.xlsx
book.ods
+ book.html
def test_json_import_set(self):
"""Generate and import JSON set serialization."""