【问题标题】:How to test Django Querysets are equal using pytest-django如何使用 pytest-django 测试 Django 查询集是否相等
【发布时间】:2021-09-28 13:25:30
【问题描述】:

断言两个查询集相等的最佳/最易读的方法是什么?我想出了一些解决方案:

# option 1
assert sorted(qs1.values_list("pk", flat=True)) == sorted(qs2.values_list("pk", flat=True))

# option 2 (need to assert length first because set might remove duplicates)
assert len(qs1) == len(qs2)
assert set(qs1) == set(qs2)

我知道 Django 有一个方法django.test.TransactionTestCase.assertQuerysetEqual。 pytest-django 有类似的东西吗?我在documentation 中没有看到它。

【问题讨论】:

    标签: python django django-testing pytest-django


    【解决方案1】:

    它在您建议的链接的起始行中:

    断言
    所有 Django 的 TestCase 断言都在 pytest_django.asserts 中可用, 例如 from pytest_django.asserts import assertTemplateUsed

    同样你可以使用,来自pytest_django.asserts import assertQuerysetEqual

    【讨论】:

      猜你喜欢
      • 2017-12-26
      • 2013-07-15
      • 1970-01-01
      • 2020-06-05
      • 2012-03-29
      • 2013-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多