【问题标题】:Django : Testing admin userDjango:测试管理员用户
【发布时间】:2013-03-28 05:35:29
【问题描述】:

我需要在 django 应用程序中测试我的一个视图,该应用程序需要 admin user 才能拥有某些权限

如何创建test user 并设置其某些权限,例如staff statusgroup permissions

我可以使用工厂来这样做吗?

【问题讨论】:

标签: python django unit-testing


【解决方案1】:

要创建裸超级用户,请执行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

【讨论】:

    猜你喜欢
    • 2012-08-07
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    • 2017-09-16
    • 1970-01-01
    • 2012-02-16
    • 1970-01-01
    • 2015-06-13
    相关资源
    最近更新 更多