我想测试一个金字塔视图,如下所示:
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)。我想做的是index在app或的上下文中执行test_app,但是要在将结果index发送到渲染器之前取回它。
任何提示如何做到这一点?
相关分类