【发布时间】:2018-02-07 19:49:50
【问题描述】:
我正在使用 Django 1.11、Python 3.6 和 Visual Studio,我正在尝试运行我的单元测试,但在测试处理表单的视图方法时遇到了一些问题。
这是我的测试:
def test_post_newComment(self):
# Login
self.client.login(username="user1", password="user1")
# Data form
data = {'title': 'Test', 'queja':2}
# Response to post client request
response = self.client.post(reverse('newComment'), data)
# Check response
self.assertTrue(isinstance(response, HttpResponseRedirect))
self.assertEqual(response.status_code, 302)
....
这是我的 Views.py 方法,在调试中我可以看到 request.POST 是一个空字典,因此表单永远不会填写在 self.client.post 中。
@login_required(login_url='/login/')
def nuevoComentario(request):
assert isinstance(request, HttpRequest)
# User validation
if not (request.user.is_authenticated):
return HttpResponseRedirect('/login/')
# If the forms has been submitted
if (request.method == 'POST'):
form = NewCommentForm(request.POST)
if (form.is_valid()):
...
request.POST 总是一个空字典。我曾尝试将“content_type”参数添加到 self.client.post 请求,但我也获得了相同的结果(request.POST 到达 views.py 方法为空)。
【问题讨论】:
-
嗨@ÁlvaroSL。你解决了这个问题吗?我想我现在也一样......
标签: python django visual-studio unit-testing django-views