summaryrefslogtreecommitdiff
path: root/tests/test_tablib.py
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2019-10-22 20:45:21 +0200
committerClaude Paroz <claude@2xlibre.net>2019-10-22 20:48:45 +0200
commit205403d377d4b6cb7f2b0fb48044442069269992 (patch)
treed112f357cd41e44875049c1e073741d8fb8cc36e /tests/test_tablib.py
parent9858539c8718c16a540de24a508ad2d6f9a5e055 (diff)
downloadtablib-205403d377d4b6cb7f2b0fb48044442069269992.tar.gz
Fixes #202 - Keep error content when importing xls files
Diffstat (limited to 'tests/test_tablib.py')
-rwxr-xr-xtests/test_tablib.py29
1 files changed, 24 insertions, 5 deletions
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))