Django 1.4 - assertQuerysetEqual - 如何使用方法 [英] Django 1.4 - assertQuerysetEqual - how to use method

查看:25
本文介绍了Django 1.4 - assertQuerysetEqual - 如何使用方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想知道 TestCase.assertQuerysetEqual 方法是如何工作的.我以不同的方式尝试过,每一种方式都将我引向另一条错误消息.

I'm wondering how the TestCase.assertQuerysetEqual method works. I tried it in different ways, each of them leading me to another error message.

#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)

Number1 的错误消息:

Error Message for Number1:

First list contains 21 additional elements.
First extra element 1:
node.pk: 2 - node: node2 - pk: 2 - level: 0 - ancestor: 2

数字 2 的错误消息:

Error Message for Number 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 方法.

Thanks for hints how to use the assertQuerysetEqual method correctly.

推荐答案

试试这个:

self.assertQuerysetEqual(
    tree_record_qs,
    [repr(r) for r in tree_record_backup]
)

这有点奇怪且没有记录;但是,这应该对你有用.

it's a bit weird and undocumented; but, that should work for you.

这篇关于Django 1.4 - assertQuerysetEqual - 如何使用方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆