我如何模拟 Pyramid 的 `request.matched_route` 对象?
How do I mock Pyramid's `request.matched_route` object?
我正在为使用 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()
我正在为使用 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()