Begin porting tests.

This commit is contained in:
Friedrich Lindenberg 2013-04-01 19:38:02 +02:00
parent 8e8d676369
commit 2c17baa6a3
4 changed files with 57 additions and 4 deletions

View File

@ -29,7 +29,7 @@ class Database(object):
self.metadata.bind = self.engine self.metadata.bind = self.engine
self.tables = {} self.tables = {}
def create_table(table_name): def create_table(self, table_name):
with self.lock: with self.lock:
log.debug("Creating table: %s on %r" % (table_name, self.engine)) log.debug("Creating table: %s on %r" % (table_name, self.engine))
table = SQLATable(table_name, self.metadata) table = SQLATable(table_name, self.metadata)
@ -51,15 +51,15 @@ class Database(object):
if table_name in self.tables: if table_name in self.tables:
return Table(self, self.tables[table_name]) return Table(self, self.tables[table_name])
if self.engine.has_table(table_name): if self.engine.has_table(table_name):
return load_table(engine, table_name) return self.load_table(table_name)
else: else:
return create_table(engine, table_name) return self.create_table(table_name)
def __getitem__(self, table_name): def __getitem__(self, table_name):
return self.get_table(table_name) return self.get_table(table_name)
def query(self, query): def query(self, query):
return resultiter(self.engine.execute(query)): return resultiter(self.engine.execute(query))
def __repr__(self): def __repr__(self):
return '<Database(%s)>' % self.url return '<Database(%s)>' % self.url

0
test/__init__.py Normal file
View File

34
test/sample_data.py Normal file
View File

@ -0,0 +1,34 @@
from datetime import datetime
TEST_DATA = [
{
'date': datetime(2011, 01, 01),
'temperature': 1,
'place': 'Galway'
},
{
'date': datetime(2011, 01, 02),
'temperature': -1,
'place': 'Galway'
},
{
'date': datetime(2011, 01, 03),
'temperature': 0,
'place': 'Galway'
},
{
'date': datetime(2011, 01, 01),
'temperature': 6,
'place': 'Berkeley'
},
{
'date': datetime(2011, 01, 02),
'temperature': 8,
'place': 'Berkeley'
},
{
'date': datetime(2011, 01, 03),
'temperature': 5,
'place': 'Berkeley'
}
]

19
test/test_persistence.py Normal file
View File

@ -0,0 +1,19 @@
import unittest
from datetime import datetime
from dataset import connect
class DatabaseTestCase(unittest.TestCase):
def setUp(self):
self.db = connect('sqlite:///:memory:')
def test_create_table(self):
table = self.db['foo']
assert table.table.exists()
assert len(table.table.columns) == 1, table.table.columns
if __name__ == '__main__':
unittest.main()