【问题标题】:Tests for checking the permissions of a group检查组权限的测试
【发布时间】:2020-12-05 11:02:36
【问题描述】:

我正在尝试为应用程序编写测试,以检查组是否具有特定模型所需的权限。

应用名称:- Blog
型号名称:-Post

我能够查询所有权限,但很难弄清楚如何为其编写测试脚本。这是脚本:-

def test_group_permission(self):
        for group in Group.objects.all():
            permissions = group.permissions.all()
            print(permissions)

使用上面的代码,这是我得到的输出:-

<QuerySet [
<Permission: blog | post | Can add post>, 
<Permission: blog | post | Can change post>, 
<Permission: blog | post | Can delete post>, 
<Permission: blog | post | Can view post>
]>

现在,我如何编写适当的测试脚本来检查该特定模型的组中是否存在所需的权限,如果存在则返回 True 否则为 False

【问题讨论】:

  • 您可以检查您希望对您的对象可用的权限名称

标签: python django django-testing django-tests


【解决方案1】:

Django 文档在解释用户和组权限之间的关系方面非常糟糕。我认为混淆是因为 Group 是 User 的某种附属物,而 Django 错误地假设人们通常会检查 User 对象的权限。

如果你想要字符串,试试这个,就像User.objects.get(name = ...).get_group_permissions() 提供字符串一样的权限:

    def test_group_permission(self):
            for group in Group.objects.all():
                permissions = group.permissions.all()
                print([i.content_type.app_label + '.' + i.codename for i in group.permissions.all()])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-04
    • 1970-01-01
    • 1970-01-01
    • 2012-01-18
    • 1970-01-01
    • 2016-09-16
    相关资源
    最近更新 更多