如何正确测试django UpdateView?

时间:2017-05-08 19:37:31

标签: python django unit-testing django-views

我有以下单元测试

def test_category_update_view(self):
    """
    Make sure that a category can be updated
    :return: 
    """
    self.log_user_1_in()

    self.assertEqual('Bacon', self.category.name)

    res = self.client.put(
        reverse(
            'calendars:categories:edit_category',
            kwargs={'calendar_pk': self.calendar.id, 'pk': self.category.id}
        ),
        urlencode({'name': 'bacon is yummy'})
    )

    self.assertEqual('bacon is yummy', self.category.name)

    self.assertEqual(302, res.status_code)
    self.assertEqual(
        reverse('calendars:categories:category_list', kwargs={'calendar_pk': self.calendar.id}),
        res.url
    )

enter image description here

正如您所看到的那样,该表单无效,所以我的问题是为什么它无效?测试客户端不应该使用我提供的数据吗?我以相同的方式完成的POST请求正常工作并传递正确的数据。

如果这有点模糊,我暂时没有张贴,请原谅我。如果您需要更多信息来帮助我,请告诉我。

1 个答案:

答案 0 :(得分:1)

你不应该使用self.client.post,而不是self.client.put?