diff options
| author | Kenneth Reitz <me@kennethreitz.com> | 2012-04-20 06:17:05 -0700 |
|---|---|---|
| committer | Kenneth Reitz <me@kennethreitz.com> | 2012-04-20 06:17:05 -0700 |
| commit | e8c923d7121da21cb96eedd68710c37f5c9b471f (patch) | |
| tree | 02aae067399cffb8e1a987aabddcf2102801145d | |
| parent | bc581c08dfe100bbc9c4f11b1229d410ada40745 (diff) | |
| parent | fa6f5b3af316bfc8195921527418297681674ea2 (diff) | |
| download | tablib-e8c923d7121da21cb96eedd68710c37f5c9b471f.tar.gz | |
Merge pull request #58 from jqb/develop
Support for Dataset subclassing
| -rw-r--r-- | AUTHORS | 3 | ||||
| -rw-r--r-- | tablib/core.py | 2 | ||||
| -rwxr-xr-x | test_tablib.py | 26 |
3 files changed, 29 insertions, 2 deletions
@@ -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() |
