summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AUTHORS3
-rw-r--r--tablib/core.py2
-rwxr-xr-xtest_tablib.py26
3 files changed, 29 insertions, 2 deletions
diff --git a/AUTHORS b/AUTHORS
index b94e63b..27fe615 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -18,4 +18,5 @@ Patches and Suggestions
- Mark Rogers
- Mark Walling
- Mike Waldner
-- Joel Friedly \ No newline at end of file
+- Joel Friedly
+- Jakub Janoszek \ No newline at end of file
diff --git a/tablib/core.py b/tablib/core.py
index 46146db..c52671e 100644
--- a/tablib/core.py
+++ b/tablib/core.py
@@ -955,7 +955,7 @@ class Databook(object):
def add_sheet(self, dataset):
"""Adds given :class:`Dataset` to the :class:`Databook`."""
- if type(dataset) is Dataset:
+ if isinstance(dataset, Dataset):
self._datasets.append(dataset)
else:
raise InvalidDatasetType
diff --git a/test_tablib.py b/test_tablib.py
index 02a1eb3..aab1b0f 100755
--- a/test_tablib.py
+++ b/test_tablib.py
@@ -669,5 +669,31 @@ Old |Man |100500
)
+ def test_databook_add_sheet_accepts_only_dataset_instances(self):
+ class NotDataset(object):
+ def append(self, item):
+ pass
+
+ dataset = NotDataset()
+ dataset.append(self.john)
+
+ self.assertRaises(tablib.InvalidDatasetType, book.add_sheet, dataset)
+
+
+ def test_databook_add_sheet_accepts_dataset_subclasses(self):
+ class DatasetSubclass(tablib.Dataset):
+ pass
+
+ # just checking if subclass of tablib.Dataset can be added to Databook
+ dataset = DatasetSubclass()
+ dataset.append(self.john)
+ dataset.append(self.tom)
+
+ try:
+ book.add_sheet(dataset)
+ except tablib.InvalidDatasetType:
+ self.fail("Subclass of tablib.Dataset should be accepted by Databook.add_sheet")
+
+
if __name__ == '__main__':
unittest.main()