Django单元测试中的多个POST

时间:2010-12-10 18:38:15

标签: django unit-testing

我正在编写单元测试以验证个人资料头像模块。所以,我有一个允许用户上传头像的表单。如果存在,它只是替换当前的那个。

在我的测试中,我执行以下操作(类设置会记录用户 - 此处未显示):

    f = open('testfile1.jpg')
    data = {'image':f}
    response = self.client.post('/profile/uploadavatar/',data)
    self.assertEqual(response.status_code, 200)
    self.assertEqual(self.user1.get_profile().avatar.image.name, u'uploads/images/testfile1.jpg')
    f.close()

    f = open('testfile2.jpg')
    data = {'image':f}
    response = self.client.post('/profile/uploadavatar/',data)
    self.assertEqual(response.status_code, 200)
    self.assertEqual(self.user1.get_profile().avatar.image.name, u'uploads/images/testfile2.jpg')
    f.close()

第二个assertEqual测试头像图像名称总是失败,因为它仍然设置为第一个文件名(testfile1.jpg)。但是,当我手动测试时,代码执行了我认为应该执行的操作,即将旧的头像替换为新的头像。

我做错了吗?我是django单元测试的新手,所以我可能会遗漏一些非常简单的东西......

任何想法都会受到赞赏。

提前致谢!

1 个答案:

答案 0 :(得分:0)

“self.user1”对象以及配置文件将在开头缓存。

在操作之间重新加载用户/配置文件对象以查看更新的数据。

(从评论中拉出来。)