python - AsyncHTTPTestCase Post 请求传递数据

标签 python tornado

尝试在 Python 3.4、Tornado 版本 4.1 上使用 AsyncHTTPTestCase 测试 POST 请求。

from tornado.testing import AsyncHTTPTestCase
from myapp  import myclass

class TestFooHandler(AsyncHTTPTestCase):

    def get_app(self):
        return myclass.application

    def test_post_handler(self):
        import urllib.parse
        post_body = urllib.parse.urlencode({"key":"val"})
        response = self.fetch("/foo", method="POST", data=post_body)
        self.assertEqual(response.code, 200)

代码失败并显示消息: 意外的关键字参数“data”

这是完整的轨迹:

Traceback (most recent call last):
  File "/usr/local/lib/python3.4/dist-packages/tornado/testing.py", line 120, in __call__
    result = self.orig_method(*args, **kwargs)
  File "/home/gub/App/unit_tests/test_cors.py", line 22, in test_post_handler
    response = self.fetch("/foo", method="POST", data=post_body)
  File "/usr/local/lib/python3.4/dist-packages/tornado/testing.py", line 380, in fetch
    self.http_client.fetch(self.get_url(path), self.stop, **kwargs)
  File "/usr/local/lib/python3.4/dist-packages/tornado/httpclient.py", line 227, in fetch
    request = HTTPRequest(url=request, **kwargs)
TypeError: __init__() got an unexpected keyword argument 'data'

上面的代码哪里不对?

最佳答案

参数名称是body,而不是dataself.fetch("/foo", method="POST", body=post_body)

关于python - AsyncHTTPTestCase Post 请求传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33353768/

相关文章:

python - 如何从具有特定值的字典中提取随机键?

python - 如何使用 XPath - Scrapy 从 SELECT 列表中获取最后一个选项

python - 在 Tensorflow 中使用 InceptionV3 进行预测

python - 将 pandas 数据框中的列值乘以列标题

如果日期介于两个日期之间,则 Python Pandas 对列中的值求和

python - 在 Tornado 网络服务器中运行 Python 脚本

python tornado用户认证,然后通过apache反向代理

python - Flask/Flask_restful 自定义 404 错误信息

python - 如何覆盖另一个库中的现有记录器?

javascript - 如何从tornado web <python>调用javascript函数?