added tests, pep8 format

This commit is contained in:
Gregor Aisch 2013-04-05 11:46:45 +02:00
parent 9de0ad3e82
commit bbaf65f77c

View File

@ -5,6 +5,7 @@ from dataset import connect
from dataset.util import DatasetException from dataset.util import DatasetException
from sample_data import TEST_DATA from sample_data import TEST_DATA
class DatabaseTestCase(unittest.TestCase): class DatabaseTestCase(unittest.TestCase):
def setUp(self): def setUp(self):
@ -14,7 +15,7 @@ class DatabaseTestCase(unittest.TestCase):
self.tbl.insert(row) self.tbl.insert(row)
def test_tables(self): def test_tables(self):
assert self.db.tables==['weather'], self.db.tables assert self.db.tables == ['weather'], self.db.tables
def test_create_table(self): def test_create_table(self):
table = self.db['foo'] table = self.db['foo']
@ -24,11 +25,11 @@ class DatabaseTestCase(unittest.TestCase):
def test_load_table(self): def test_load_table(self):
tbl = self.db.load_table('weather') tbl = self.db.load_table('weather')
assert tbl.table==self.tbl.table assert tbl.table == self.tbl.table
def test_query(self): def test_query(self):
r = self.db.query('SELECT COUNT(*) AS num FROM weather').next() r = self.db.query('SELECT COUNT(*) AS num FROM weather').next()
assert r['num']==len(TEST_DATA), r assert r['num'] == len(TEST_DATA), r
class TableTestCase(unittest.TestCase): class TableTestCase(unittest.TestCase):
@ -40,13 +41,13 @@ class TableTestCase(unittest.TestCase):
self.tbl.insert(row) self.tbl.insert(row)
def test_insert(self): def test_insert(self):
assert len(self.tbl)==len(TEST_DATA), len(self.tbl) assert len(self.tbl) == len(TEST_DATA), len(self.tbl)
self.tbl.insert({ self.tbl.insert({
'date': datetime(2011, 01, 02), 'date': datetime(2011, 01, 02),
'temperature': -10, 'temperature': -10,
'place': 'Berlin'} 'place': 'Berlin'}
) )
assert len(self.tbl)==len(TEST_DATA)+1, len(self.tbl) assert len(self.tbl) == len(TEST_DATA)+1, len(self.tbl)
def test_upsert(self): def test_upsert(self):
self.tbl.upsert({ self.tbl.upsert({
@ -54,48 +55,48 @@ class TableTestCase(unittest.TestCase):
'temperature': -10, 'temperature': -10,
'place': 'Berlin'}, 'place': 'Berlin'},
['place'] ['place']
) )
assert len(self.tbl)==len(TEST_DATA)+1, len(self.tbl) assert len(self.tbl) == len(TEST_DATA)+1, len(self.tbl)
self.tbl.upsert({ self.tbl.upsert({
'date': datetime(2011, 01, 02), 'date': datetime(2011, 01, 02),
'temperature': -10, 'temperature': -10,
'place': 'Berlin'}, 'place': 'Berlin'},
['place'] ['place']
) )
assert len(self.tbl)==len(TEST_DATA)+1, len(self.tbl) assert len(self.tbl) == len(TEST_DATA)+1, len(self.tbl)
def test_delete(self): def test_delete(self):
self.tbl.insert({ self.tbl.insert({
'date': datetime(2011, 01, 02), 'date': datetime(2011, 01, 02),
'temperature': -10, 'temperature': -10,
'place': 'Berlin'} 'place': 'Berlin'}
) )
assert len(self.tbl)==len(TEST_DATA)+1, len(self.tbl) assert len(self.tbl) == len(TEST_DATA)+1, len(self.tbl)
self.tbl.delete(place='Berlin') self.tbl.delete(place='Berlin')
assert len(self.tbl)==len(TEST_DATA), len(self.tbl) assert len(self.tbl) == len(TEST_DATA), len(self.tbl)
def test_find_one(self): def test_find_one(self):
self.tbl.insert({ self.tbl.insert({
'date': datetime(2011, 01, 02), 'date': datetime(2011, 01, 02),
'temperature': -10, 'temperature': -10,
'place': 'Berlin'} 'place': 'Berlin'}
) )
d = self.tbl.find_one(place='Berlin') d = self.tbl.find_one(place='Berlin')
assert d['temperature']==-10, d assert d['temperature'] == -10, d
d = self.tbl.find_one(place='Atlantis') d = self.tbl.find_one(place='Atlantis')
assert d is None, d assert d is None, d
def test_find(self): def test_find(self):
ds = list(self.tbl.find(place='Berkeley')) ds = list(self.tbl.find(place='Berkeley'))
assert len(ds)==3, ds assert len(ds) == 3, ds
ds = list(self.tbl.find(place='Berkeley', _limit=2)) ds = list(self.tbl.find(place='Berkeley', _limit=2))
assert len(ds)==2, ds assert len(ds) == 2, ds
def test_distinct(self): def test_distinct(self):
x = list(self.tbl.distinct('place')) x = list(self.tbl.distinct('place'))
assert len(x)==2, x assert len(x) == 2, x
x = list(self.tbl.distinct('place', 'date')) x = list(self.tbl.distinct('place', 'date'))
assert len(x)==6, x assert len(x) == 6, x
def test_insert_many(self): def test_insert_many(self):
data = TEST_DATA * 5000 data = TEST_DATA * 5000
@ -113,7 +114,25 @@ class TableTestCase(unittest.TestCase):
else: else:
assert False, 'we should not reach else block, no exception raised!' assert False, 'we should not reach else block, no exception raised!'
def test_columns(self):
cols = self.tbl.columns
assert isinstance(cols, set), 'columns should be a set'
assert len(cols) == 4, 'column count mismatch'
assert 'date' in cols and 'temperature' in cols and 'place' in cols
def test_iter(self):
c = 0
for row in self.tbl:
c += 1
assert c == len(self.tbl)
def test_update(self):
self.tbl.upsert({
'date': datetime(2011, 01, 02),
'temperature': -10,
'place': 'Berlin'},
['place']
)
if __name__ == '__main__': if __name__ == '__main__':
unittest.main() unittest.main()