我想测试一个金字塔视图,如下所示:
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
任何提示如何做到这一点?