我想知道TestCase.assertQuerysetEqual方法是如何工作的。我以不同的方式嘗試過,他們每個人都讓我接到另一個錯誤信息。Django 1.4 - assertQuerysetEqual - 如何使用方法
#create a backup of all records in the tree
tree_record_backup = list(Tree.objects.all())
#do some updates on another table, which should not affect the tree table if everything goes wrong
#check if list of tree records did not changed
tree_record_qs = Tree.objects.all()
#Number1:
self.assertQuerysetEqual(tree_record_qs,[repr(tree_record_backup)])
#Number2:
self.assertQuerysetEqual(tree_record_qs,tree_record_backup)
爲數字1錯誤消息:
First list contains 21 additional elements.
First extra element 1:
node.pk: 2 - node: node2 - pk: 2 - level: 0 - ancestor: 2
爲2號錯誤消息:
AssertionError: Lists differ: ['<Tree: node.pk: 1 - node: ro... != [<Tree: node.pk: 1 - node: roo...
First differing element 0:
<Tree: node.pk: 1 - node: root - pk: 1 - level: 0 - ancestor: 1>
node.pk: 1 - node: root - pk: 1 - level: 0 - ancestor: 1
感謝提示如何正確地使用該方法assertQuerysetEqual。
謝謝澄清! – 2013-01-07 07:08:44
使用python 3 + django 1.5,你應該使用map(repr,your_second_queryset)'因爲assertQuerysetEqual將queryset轉換爲列表。 – 2013-01-10 20:03:11