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

Tom*_*Tom 3 python testing django

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

def test_test(self):
   ...
   print Test.id
   print name[0]
   self.assertEqual(name[0], Test.id)
Run Code Online (Sandbox Code Playgroud)

输出是

正在为别名“default”创建测试数据库............

c8124e1d-c01c-4762-bcc0-d32df93e0824

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

断言错误:u'c8124e1d-c01c-4762-bcc0-d32df93e0824'!= UUID('c8124e1d-c01c-4762-bcc0-d32df93e0824')

有任何想法吗?

Dan*_*iel 7

看错误信息:name[0]is a unicode string and Test.idis a UUID。它们具有相同的表示,但是不同的对象。要测试相等性,只需将一个对象转换为另一个对象的类型:

self.assertEqual(name[0], str(Test.id))
Run Code Online (Sandbox Code Playgroud)