diff options
| author | Claude Paroz <claude@2xlibre.net> | 2019-10-22 20:45:21 +0200 |
|---|---|---|
| committer | Claude Paroz <claude@2xlibre.net> | 2019-10-22 20:48:45 +0200 |
| commit | 205403d377d4b6cb7f2b0fb48044442069269992 (patch) | |
| tree | d112f357cd41e44875049c1e073741d8fb8cc36e /tests | |
| parent | 9858539c8718c16a540de24a508ad2d6f9a5e055 (diff) | |
| download | tablib-205403d377d4b6cb7f2b0fb48044442069269992.tar.gz | |
Fixes #202 - Keep error content when importing xls files
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/files/errors.xls | bin | 0 -> 5632 bytes | |||
| -rwxr-xr-x | tests/test_tablib.py | 29 |
2 files changed, 24 insertions, 5 deletions
diff --git a/tests/files/errors.xls b/tests/files/errors.xls Binary files differnew file mode 100644 index 0000000..0869337 --- /dev/null +++ b/tests/files/errors.xls diff --git a/tests/test_tablib.py b/tests/test_tablib.py index 00b8214..695d13d 100755 --- a/tests/test_tablib.py +++ b/tests/test_tablib.py @@ -6,6 +6,8 @@ import doctest import json import pickle import unittest +from collections import OrderedDict +from pathlib import Path from uuid import uuid4 import tablib @@ -887,17 +889,34 @@ class TSVTests(BaseTestCase): self.assertEqual(tsv, self.founders.tsv) +class XLSTests(BaseTestCase): + def test_xls_format_detect(self): + """Test the XLS format detection.""" + in_stream = self.founders.xls + self.assertEqual(detect_format(in_stream), 'xls') + + def test_xls_import_with_errors(self): + """Errors from imported files are kept as errors.""" + xls_source = Path(__file__).parent / 'files' / 'errors.xls' + with xls_source.open('rb') as fh: + data = tablib.Dataset().load(fh.read()) + self.assertEqual( + data.dict[0], + OrderedDict([ + ('div by 0', '#DIV/0!'), + ('name unknown', '#NAME?'), + ('not available (formula)', '#N/A'), + ('not available (static)', '#N/A') + ]) + ) + + class XLSXTests(BaseTestCase): def test_xlsx_format_detect(self): """Test the XLSX format detection.""" in_stream = self.founders.xlsx self.assertEqual(detect_format(in_stream), 'xlsx') - def test_xls_format_detect(self): - """Test the XLS format detection.""" - in_stream = self.founders.xls - self.assertEqual(detect_format(in_stream), 'xls') - def test_xlsx_import_set(self): date_time = datetime.datetime(2019, 10, 4, 12, 30, 8) data.append(('string', '004', 42, 21.55, date_time)) |
