SqlAlchemy (v0.7.4) を使用するメッセージ プロセッサをテストしています。私のテストでは、Sqlite でFixture (v1.4)を使用して、一時データベースをセットアップおよび破棄しています。フィクスチャ データには、プロセッサの実行時に更新されるステータス フィールドを含むファイル テーブルが含まれています。
テスト、テスト対象のプロセッサ、フィクスチャがすべて同じデータベース セッションを共有していることを確認しました。
プロセッサが実行される前と実行後に、ファイル レコードのステータス フィールドを照会します。値を変更する必要があります (「処理中」を表す int から「完了」に)。フィールドが正しい新しいステータス値で更新されていることを確認するために、プロセッサ内にデバッグ コードを追加しました。また、プロセッサが生成する出力ファイルの内容をチェックすることで、プロセッサが正常に動作することを個別に検証することもできます。ただし、テストのデータベース セッションを使用してテストの最後にステータスを照会すると、常に最初の値と同じになります。
最終ステータスクエリの前に、セッションを明示的にコミットしてフラッシュしようとしました。何も機能しません。何か案は?