Django: 测试管理员用户

3

我需要测试Django应用程序中的一个视图,该视图要求管理员用户具有某些权限。

如何创建一个测试用户并设置其一些权限,例如员工状态组权限

我可以使用工厂来实现吗?


这不是类似的问题吗? https://dev59.com/m3A75IYBdhLWcg3wDUm2 - cadmi
是的,但我不想使用User模型本身及其create_superuser方法。我的所有测试都使用工厂函数。 - Deepankar Bajpeyi
1个回答

2

创建超级用户,请执行以下命令:python manage.py createsuperuser https://docs.djangoproject.com/en/dev/ref/django-admin/#createsuperuser

如果需要初始设置权限,请创建自定义的django-admin命令:app_name/commands/management/create_test_user.py

from django.contrib.auth.models import User, Group, Permission
from django.core.management.base import BaseCommand

class Command( BaseCommand ):

    help = "Creates test user"
    args = '<username> <password>'

    def handle( self, username, password ):

        user, created = User.objects.get_or_create( username=username ) 
        user.set_password( password )
        user.is_staff = True
        user.save()

        custom_perm = Permission.objects.get( codename='custom_perm_name' )
        user.user_permissions.add( custom_perm )

        if created:
            print "%s created" % username
        else:
            print "%s updated" % username

然后:

python manage.py create_test_user admin1 qwe123

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