Merge pull request #58 from jqb/develop
Support for Dataset subclassing
This commit is contained in:
commit
e8c923d712
3
AUTHORS
3
AUTHORS
|
@ -18,4 +18,5 @@ Patches and Suggestions
|
|||
- Mark Rogers
|
||||
- Mark Walling
|
||||
- Mike Waldner
|
||||
- Joel Friedly
|
||||
- Joel Friedly
|
||||
- Jakub Janoszek
|
|
@ -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
|
||||
|
|
|
@ -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()
|
||||
|
|
Loading…
Reference in New Issue