TurboGearsでSQLALchemyを使用している場合にpy.testでモデルをテストする方法

test.cfgでdburiをテスト用のDB接続に設定する。
以下はSqliteのオンメモリDBを使う例

sqlalchemy.dburi = "sqlite:///:memory:"

model.py内のセットアップを以下のようにする。

def setup_module(module):
    database.bind_meta_data()
    database.metadata.engine.echo = 1
    database.metadata.create_all()

これで毎回テーブルがcreateされる。

あとはTest*クラスやtest_*関数内でassertすればOK
テスト実行はもちろん py.test とコマンドラインで実行するだけ