summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/files/errors.xlsbin0 -> 5632 bytes
-rwxr-xr-xtests/test_tablib.py29
2 files changed, 24 insertions, 5 deletions
diff --git a/tests/files/errors.xls b/tests/files/errors.xls
new file mode 100644
index 0000000..0869337
--- /dev/null
+++ b/tests/files/errors.xls
Binary files differ
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))