MMa*_*ian 6 python django django-testing
如何使用Django测试客户端提交POST请求,以便在其中包含表单数据?特别是,我希望有类似的东西(灵感来自我应该如何在Django中为Forms编写测试?):
from django.tests import TestCase
class MyTests(TestCase):
def test_forms(self):
response = self.client.post("/my/form/", {'something':'something'})
Run Code Online (Sandbox Code Playgroud)
我的端点/ my/form有一些内部逻辑来处理'某事'.问题是,当试图以后访问request.POST.get('something')时,我无法得到任何东西.我找到了一个解决方案,所以我在下面分享.
关键是将content_type添加到客户端的post方法,并对数据进行urlencode.
from urllib import urlencode
...
data = urlencode({"something": "something"})
response = self.client.post("/my/form/", data, content_type="application/x-www-form-urlencoded")
Run Code Online (Sandbox Code Playgroud)
希望这有助于某人!
| 归档时间: |
|
| 查看次数: |
4787 次 |
| 最近记录: |