def test_permissions(self, user, access): image = ImageFactory() if isinstance(user, str): group_name = ( settings.RETINA_ADMINS_GROUP_NAME if "admin" in user else settings.RETINA_GRADERS_GROUP_NAME ) if "no_access" not in user: image.permit_viewing_by_retina_users() user = UserFactory() grader_group, group_created = Group.objects.get_or_create( name=group_name ) grader_group.user_set.add(user) elif user == AnonymousUser: user = AnonymousUser() else: user = user(is_staff=True) request = Request(user=user) permission = ImagePermission() assert permission.has_object_permission(request, {}, image) == access