From f31ec562b4834089ac0d4a9510da6a80a5ba9a0a Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Mon, 13 Sep 2010 23:49:16 -0400 Subject: [PATCH] Extensively testing --- tablib/core.py | 12 +++++++--- test_tablib.py | 63 +++++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 64 insertions(+), 11 deletions(-) diff --git a/tablib/core.py b/tablib/core.py index 4a0b55f..d359055 100644 --- a/tablib/core.py +++ b/tablib/core.py @@ -15,7 +15,6 @@ import simplejson as json import xlwt import yaml -import showme from helpers import * @@ -141,7 +140,14 @@ class Dataset(object): def headers(self, collection): """Validating headers setter.""" self._validate(collection) - self.__headers = collection + if collection: + try: + self.__headers = list(collection) + except TypeError, why: + raise TypeError + else: + self.__headers = None + @property @@ -188,7 +194,7 @@ class Dataset(object): wb.save(stream) return stream.getvalue() -# @showme.trace + def append(self, row=None, col=None): """Adds a row to the end of Dataset""" if row: diff --git a/test_tablib.py b/test_tablib.py index cea6d24..93ff252 100644 --- a/test_tablib.py +++ b/test_tablib.py @@ -7,15 +7,14 @@ import tablib class TablibTestCase(unittest.TestCase): def setUp(self): - pass + global data + data = tablib.Dataset() def tearDown(self): pass + def test_empty_append(self): - - data = tablib.Dataset() - new_row = (1,2,3) data.append(new_row) @@ -24,17 +23,65 @@ class TablibTestCase(unittest.TestCase): def test_empty_append_with_headers(self): - data = tablib.Dataset() - data.headers = ['first', 'second'] new_row = (1,2,3,4) self.assertRaises(tablib.InvalidDimensions, data.append, new_row) + + + def test_add_column(self): + # No Headers + + data.append(['kenneth']) + data.append(['bessie']) + + new_col = ['reitz', 'monke'] + + data.append(col=new_col) + + self.assertEquals(data[0], ('kenneth', 'reitz')) + self.assertEquals(data.width, 2) + + # With Headers + data.headers = ('fname', 'lname') + new_col = ['age', 21, 22] + data.append(col=new_col) + + self.assertEquals(data[new_col[0]], new_col[1:]) - # def test_adding_header with (self): - + + + def test_add_column_no_data_no_headers(self): + + # no headers + + new_col = ('reitz', 'monke') + + data.append(col=new_col) + + self.assertEquals(data[0], tuple([new_col[0]])) + self.assertEquals(data.width, 1) + self.assertEquals(data.height, len(new_col)) + def test_add_column_no_data_with_headers(self): + # no headers + + data.headers = ('first', 'last') + + new_col = ('age',) + data.append(col=new_col) + + self.assertEquals(len(data.headers), 3) + self.assertEquals(data.width, 3) + + new_col = ('foo', 'bar') + + self.assertRaises(tablib.InvalidDimensions, data.append, col=new_col) + + def tuple_check(self): + data.append(col=(1,2,3)) + if __name__ == '__main__': unittest.main() \ No newline at end of file