在Django单元测试中检查权限对象是否存在

3
假设我想编写一个测试来确保某个权限不存在。我希望以下测试可以通过(但实际上却出错):
from django.test import TestCase
from django.contrib.auth.models import Permission

class TestPermission(TestCase):
  def test_existence_of_permission(self):
    self.assertIsNone(Permission.objects.get(codename='a_non_existant_permission'))

这会导致以下错误:
django.contrib.auth.models.DoesNotExist: Permission matching query does not exist.

我该如何测试此权限不存在?
1个回答

4

我搞清楚了:

我应该将Permission视为一个普通的Django模型。

from django.test import TestCase
from django.contrib.auth.models import Permission

class TestPermission(TestCase):
  def test_existence_of_permission(self):
    self.assertFalse(Permission.objects.filter(
      codename='a_non_existant_permission').exists())

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接