2010-12-10 240 views
0

我在编写单元测试来验证配置文件头像模块。所以,我有一个允许用户上传头像的表单。如果存在,它只是取代当前的一个。Django单元测试中的多个POST

在我的测试,我做了以下(类设置登录用户的 - 这里没有显示):

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

在上传之间重新加载用户对象。 – 2010-12-10 18:52:46

+0

谢谢亚当!它做到了:)欢呼声 – mapes911 2010-12-10 19:46:23

回答

0

将“self.user1”对象与配置文件一起缓存在开头。

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

(从评论中拉出)