我该如何嘲笑Pyramid's`request.matched_route`对象



我正在为使用Pyramid的项目编写单元测试。到目前为止,我所做的是手动向请求添加数据和属性。例如,在路由中设置id:

request = testing.DummyRequest()
request.matchdict['id'] = 19

我的一个视图附加了多个路由,我用request.matched_route.name确定路由。

现在,当我尝试手动设置路线时,如:

request.matched_route.name = 'one_of_my_routes'

request.matched_route = {'name': 'one_of_my_routes'}

我有错误。使用Python单元测试进行测试的正确方法是什么?

这不是Javascript。你不能制作一本字典并期望在上面使用点运算符。所以这就是为什么#2不起作用#1可能与您需要在链中创建每个对象的事实有关。如果路由匹配,则request只有matched_route属性,因此需要创建该对象。

class DummyRoute(object):
    name = 'one_of_my_routes'
request.matched_route = DummyRoute()

最新更新