如何在Django中使用表单测试视图?

时间:2015-08-31 16:55:12

标签: python django forms testing view

我正在Django中创建一个应用程序,我有下一个问题:我想在Django中为一个视图编写一个测试,但是该视图从html接收一个表单,我不知道我怎么能模拟发送表单以测试该视图。

我的观点是下一个:

class EnsaioaBilatuViewTest(TestCase):

def test_ensaioa_bilatu_view(self):

    self.client.login(username='admin', password='admin')

    response = self.client.post('/url/', {'attr1':'2015-01-01', 'attr2':''})

    self.assertEquals(response.status_code, 302)

    self.assertEquals(response.context['value'], 0)

我得到的错误是下一个错误:

 self.assertEquals(response.context['value'], 0)
 eError: 'NoneType' object has no attribute '__getitem__'

它是如何发生的?

1 个答案:

答案 0 :(得分:0)

要测试视图,请提供HTML表单发回的数据,然后在响应中断言:

response = self.client.post(reverse('select_self'), 
    {u'form-0-id':[u'1'],
     u'form-0-username': [u'thomas6'],
     u'form-0-class_choice': [u'1'],  
     u'form-1-id':[u'4'],
     u'form-1-username': [u'thomas6'], 
     u'form-1-class_choice': [u'10'], 
     u'form-TOTAL_FORMS': [u'2'], 
     u'form-INITIAL_FORMS': [u'2'], 
                                                        })
self.assertEqual(response.status_code, 302)