在TestApp和Pyramid中测试AJAX帖子

时间:2012-04-17 07:52:47

标签: python ajax pyramid

我正在尝试为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。

在某个地方应该是一个简单的答案,但我无法在任何文档或其他地方找到它。任何人都可以推荐如何做到这一点?

谢谢!

2 个答案:

答案 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)