diff options
| author | Paul Moss <moss.paul@gmail.com> | 2016-03-18 18:17:19 +0000 |
|---|---|---|
| committer | Paul Moss <moss.paul@gmail.com> | 2016-03-18 18:17:19 +0000 |
| commit | 8cf6770a76046f104c09d65b3bfba4a2853484d8 (patch) | |
| tree | c49cbf25c8c181bee7adf377ddc328b22f12f647 | |
| parent | d4c66c7a4e5363a1dd75f5d9680822e885f68167 (diff) | |
| download | tablib-8cf6770a76046f104c09d65b3bfba4a2853484d8.tar.gz | |
Add HTML format to the book_export test and fix the format to work properly
| -rw-r--r-- | tablib/formats/_html.py | 15 | ||||
| -rwxr-xr-x | 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</%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.""" |
