From 8cf6770a76046f104c09d65b3bfba4a2853484d8 Mon Sep 17 00:00:00 2001 From: Paul Moss Date: Fri, 18 Mar 2016 18:17:19 +0000 Subject: Add HTML format to the book_export test and fix the format to work properly --- tablib/formats/_html.py | 15 +++++++++------ test_tablib.py | 1 + 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\n' % (BOOK_ENDINGS, title, BOOK_ENDINGS)) - stream.write(dset.html) - stream.write('\n') + wrapper.write('<%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.""" -- cgit v1.2.1