我如何模仿Pyramid的`request.matched_route`对象?

时间:2015-06-23 11:32:24

标签: python unit-testing pyramid

我正在为使用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单元测试来测试它的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

这不是Javascript。你不能制作一本字典,并希望在其上使用点运算符。这就是为什么#2不起作用的原因。 #1可能与您需要在链中创建每个对象的事实有关。如果路线匹配,则Symfony\Component\Validator\Exception\UnexpectedTypeException: Expected argument of type "array or Traversable and ArrayAccess", "string" given 只有request属性,因此您需要创建该对象。

matched_route