检查django TestCase中的权限



我正在尝试在django1.8应用程序中测试我的create_user视图。我有以下TestCase:

    new_user = User.objects.get(username='test')
    basic_user_group = Group.objects.get(name='basic_users')
    self.assertIn(basic_user_group, new_user.groups.all()) # passes
    print new_user.groups.all()
    # [<Group: basic_users>]
    print new_user.groups.first().permissions.all()
    # [<Permission: foo_app | 'add_bar'>]
    print new_user.get_all_permissions()
    # set([]) # Why?
    self.assertTrue(new_user.has_perm('foo_app.add_bar')) # fails

当我使用实际的应用程序创建一个用户,然后打开shell检查has_perm('foo_app.add_bar'),它是真的。测试中出了什么问题?

我使用django-guardian作为对象权限。我的settings.AUTHENTICATION_BACKENDS是:

(
    'guardian.backends.ObjectPermissionBackend',
    'django.contrib.auth.backends.ModelBackend',
)

以防有人发现这一点,我的问题是,如果用户未激活(user.is_active == False)权限检查总是返回False。我必须激活new_user才能检查权限是否添加。

相关内容

  • 没有找到相关文章

最新更新