即使python / django中的值相同,assertEqual也会失败

时间:2016-03-10 21:33:24

标签: python django testing

有人可以解释为什么会失败:

def test_test(self):
   ...
   print Test.id
   print name[0]
   self.assertEqual(name[0], Test.id)

输出

  

为别名'default'创建测试数据库...... ......

     

c8124e1d-C01C-4762-bcc0-d32df93e0824

     

c8124e1d-C01C-4762-bcc0-d32df93e0824   F....................   ================================================== ====================失败:......   -------------------------------------------------- -------------------- Traceback(最近一次调用最后一次):...       self.assertEqual(name [0],Test.id)

     

AssertionError:u'c8124e1d-c01c-4762-bcc0-d32df93e0824'!=   UUID( 'c8124e1d-C01C-4762-bcc0-d32df93e0824')

任何想法?

1 个答案:

答案 0 :(得分:3)

查看错误消息:name[0]是一个unicode字符串,Test.id是一个UUID。它们具有相同的表示但是不同的对象。要测试相等性,只需将一个对象转换为另一个对象的类型:

self.assertEqual(name[0], str(Test.id))