我正在尝试在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'),它是True。测试中出了什么问题?
我正在使用django-guardian获取对象权限。我的settings.AUTHENTICATION_BACKENDS
是:
(
'guardian.backends.ObjectPermissionBackend',
'django.contrib.auth.backends.ModelBackend',
)
答案 0 :(得分:0)
万一有人发现这个,我的问题是如果用户未被激活(user.is_active == False
),权限检查总是返回False。我必须激活new_user
才能检查添加的权限。