我正在尝试为ajax视图编写测试...视图配置如下:
@view_config(name='new', context='resource.Events', renderer='json',
request_method='POST', xhr=True)
def event_view(self):
# ...
在我的测试中,我想创建一个ajax帖子,所以我尝试:
extra_environ = {'X_REQUESTED_WITH' : 'XmlHttpRequest'}
# also tried setting HTTP_X_REQUESTED_WITH
self.testapp.post('/events/new', params=post_params, extra_environ=extra_environ)
但这篇文章从未被发送到我的观点。 request.is_xhr参数永远不会设置为True。
在某个地方应该是一个简单的答案,但我无法在任何文档或其他地方找到它。任何人都可以推荐如何做到这一点?
谢谢!
答案 0 :(得分:2)
看起来我没有正确套管'xmlhttprequest'。需要:
extra_environ = {'HTTP_X_REQUESTED_WITH' : 'XMLHttpRequest'}
在以下代码中找到:
webob / request.py第472行
不幸的是需要在代码中挖掘这个。案件也很令人惊讶。
答案 1 :(得分:1)
在我的情况下,在帖子请求中设置 xhr = True 就足够了。
self.testapp.post('/events/new', params=post_params, xhr=True)