次のようなピラミッド ビューをテストしたいと思います。
def index(request):
data = request.some_custom_property.do_something()
return {'some':data}
some_custom_property
このようなイベント ハンドラーを介してリクエストに追加されます。
@subscriber(NewRequest)
def prepare_event(event):
event.request.set_property(
create_some_custom_property,
'some_custom_property',reify=True
)
私の問題: テスト リクエストを手動で作成すると、イベントがトリガーされないため、イベントが正しく設定されません。実際のイベント ハンドラーはより複雑で構成設定に依存するため、テスト コードでそのコードを再現したくありません。ピラミッド型のインフラを最大限活用したい。以前の質問から、ini ファイルから実際のピラミッド アプリをセットアップする方法を学びました。
from webtest import TestApp
from pyramid.paster import get_app
app = get_app('testing.ini#main')
test_app = TestApp(app)
正常にtest_app
動作しますが、html 出力しか取得できません (これは の考え方ですTestApp
)。私がやりたいことは、orindex
のコンテキストで実行することですが、レンダラーに送信される前に の結果を取得することです。app
test_app
index
それを行う方法のヒントはありますか?