Merge pull request #68 from grn/fix-table-cache

Update the table cache in update_table (fixes #67)

Thanks to @grn
This commit is contained in:
Stefan Wehrmeyer 2014-01-27 14:25:08 -08:00
commit 9035edceeb
2 changed files with 9 additions and 1 deletions

View File

@ -190,7 +190,8 @@ class Database(object):
self.metadata = MetaData(schema=self.schema) self.metadata = MetaData(schema=self.schema)
self.metadata.bind = self.engine self.metadata.bind = self.engine
self.metadata.reflect(self.engine) self.metadata.reflect(self.engine)
return SQLATable(table_name, self.metadata) self._tables[table_name] = SQLATable(table_name, self.metadata)
return self._tables[table_name]
def get_table(self, table_name, primary_id='id', primary_type='Integer'): def get_table(self, table_name, primary_id='id', primary_type='Integer'):
""" """

View File

@ -121,6 +121,13 @@ class DatabaseTestCase(unittest.TestCase):
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
def test_table_cache_updates(self):
tbl1 = self.db.get_table('people')
tbl1.insert(dict(first_name='John', last_name='Smith'))
tbl2 = self.db.get_table('people')
assert list(tbl2.all()) == [(1, 'John', 'Smith')]
class TableTestCase(unittest.TestCase): class TableTestCase(unittest.TestCase):