summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenneth Reitz <me@kennethreitz.com>2012-04-20 06:17:05 -0700
committerKenneth Reitz <me@kennethreitz.com>2012-04-20 06:17:05 -0700
commite8c923d7121da21cb96eedd68710c37f5c9b471f (patch)
tree02aae067399cffb8e1a987aabddcf2102801145d
parentbc581c08dfe100bbc9c4f11b1229d410ada40745 (diff)
parentfa6f5b3af316bfc8195921527418297681674ea2 (diff)
downloadtablib-e8c923d7121da21cb96eedd68710c37f5c9b471f.tar.gz
Merge pull request #58 from jqb/develop
Support for Dataset subclassing
-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()