python – Django测试客户端提交带有POST请求的表单
作者:互联网
如何使用Django测试客户端提交POST请求,以便在其中包含表单数据?
特别是,我希望有类似的东西(灵感来自How should I write tests for Forms in Django?):
from django.tests import TestCase
class MyTests(TestCase):
def test_forms(self):
response = self.client.post("/my/form/", {'something':'something'})
我的端点/ 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")
希望这有助于某人!
标签:python,django,django-testing 来源: https://codeday.me/bug/20190611/1216848.html