class TestBlanketPermissionPolicy(PermissionPolicyTestCase): def setUp(self): super(TestBlanketPermissionPolicy, self).setUp() self.policy = BlanketPermissionPolicy(Image) self.active_users = [ self.superuser, self.image_adder, self.oneoff_image_adder, self.image_changer, self.oneoff_image_changer, self.oneoff_image_deleter, self.useless_user, ] self.all_users = self.active_users + [ self.inactive_superuser, self.inactive_image_adder, self.inactive_image_changer, self.anonymous_user, ] def test_user_has_permission(self): # All users have permission to do everything self.assertUserPermissionMatrix([ (user, True, True, True, True) for user in self.all_users ]) def test_user_has_any_permission(self): for user in self.all_users: self.assertTrue( self.policy.user_has_any_permission(user, ['add', 'change']) ) def test_users_with_permission(self): # all active users have permission users_with_add_permission = self.policy.users_with_permission('add') self.assertResultSetEqual(users_with_add_permission, self.active_users) def test_users_with_any_permission(self): # all active users have permission users_with_add_or_change_permission = self.policy.users_with_any_permission( ['add', 'change'] ) self.assertResultSetEqual(users_with_add_or_change_permission, self.active_users) def test_user_has_permission_for_instance(self): # All users have permission to do everything on any given instance self.assertUserInstancePermissionMatrix(self.adder_image, [ (user, True, True, True) for user in self.all_users ]) def test_user_has_any_permission_for_instance(self): for user in self.all_users: self.assertTrue( self.policy.user_has_any_permission_for_instance( user, ['change', 'delete'], self.adder_image ) ) def test_instances_user_has_permission_for(self): all_images = [ self.adder_image, self.useless_image, self.anonymous_image ] # all users can edit all instances for user in self.all_users: self.assertResultSetEqual( self.policy.instances_user_has_permission_for(user, 'change'), all_images ) def test_instances_user_has_any_permission_for(self): all_images = [ self.adder_image, self.useless_image, self.anonymous_image ] for user in self.all_users: self.assertResultSetEqual( self.policy.instances_user_has_any_permission_for(user, ['change', 'delete']), all_images ) def test_users_with_permission_for_instance(self): # all active users have permission users_with_change_permission = self.policy.users_with_permission_for_instance( 'change', self.useless_image ) self.assertResultSetEqual(users_with_change_permission, self.active_users) def test_users_with_any_permission_for_instance(self): # all active users have permission users_with_change_or_del_permission = self.policy.users_with_any_permission_for_instance( ['change', 'delete'], self.useless_image ) self.assertResultSetEqual(users_with_change_or_del_permission, self.active_users)