def test_editor_hooks(self): module1 = Module('module1', '', [], []) module2 = Module('module2', '', [], []) module3 = Module('module3', '', [], []) module4 = Module('module4', '', [], []) Roles.register_permissions(module1, lambda unused: [ Permission('permissiona', 'a'), Permission('permissionb', 'b')]) Roles.register_permissions(module2, lambda unused: [ Permission('permissionc', 'c'), Permission('permissiond', 'd')]) Roles.register_permissions(module4, lambda unused: [ Permission('permissiong', 'g'), Permission('permissiond', 'h')]) handler = RoleRESTHandler() handler.course = self.course datastore_permissions = { module1.name: ['permission', 'permissiona', 'permissionb'], module2.name: ['permissionc', 'permissiond'], module3.name: ['permissione', 'permissionf'] } datastore_dict = { 'name': 'Role Name', 'users': ['*****@*****.**', '*****@*****.**'], 'permissions': datastore_permissions } editor_dict = handler.transform_for_editor_hook(datastore_dict) self.assertEquals(editor_dict['name'], 'Role Name') self.assertEquals(editor_dict['users'], '[email protected], [email protected]') modules = editor_dict['modules'] # Test registered assigned permission permissionc = modules[module2.name][0] self.assertEquals(permissionc['assigned'], True) self.assertEquals(permissionc['name'], 'permissionc') self.assertEquals(permissionc['description'], 'c') # Test unregistered module with assigned permission permissionsf = modules[RoleRESTHandler.INACTIVE_MODULES][1] self.assertEquals(permissionsf['assigned'], True) self.assertEquals(permissionsf['name'], 'permissionf') self.assertEquals( permissionsf['description'], 'This permission was set by the module "module3" which is ' 'currently not registered.' ) # Test registered module with assigned unregistered permission permission = modules[module1.name][2] self.assertEquals(permission['assigned'], True) self.assertEquals(permission['name'], 'permission') self.assertEquals( permission['description'], 'This permission is currently not registered.' ) # Test registered unassigned permissions permissiong = editor_dict['modules'][module4.name][0] self.assertEquals(permissiong['assigned'], False) self.assertEquals(permissiong['name'], 'permissiong') self.assertEquals(permissiong['description'], 'g') # Call the hook which gets called when saving new_datastore_dict = handler.transform_after_editor_hook(datastore_dict) # If original dict matches new dict then both hooks work correctly self.assertEquals(datastore_dict, new_datastore_dict)
def test_not_unique_role_name(self): role_name = 'Test Role' role_id = self._create_role(role_name) handler = RoleRESTHandler() handler.course = self.course editor_dict = {'name': role_name} errors = [] handler.validate(editor_dict, role_id + 1, None, errors) self.assertEquals(errors[0], 'The role must have a unique non-empty name.')
def test_not_unique_role_name(self): role_name = 'Test Role' role_id = self._create_role(role_name) handler = RoleRESTHandler() handler.course = self.course editor_dict = { 'name': role_name } errors = [] handler.validate(editor_dict, role_id + 1, None, errors) self.assertEquals( errors[0], 'The role must have a unique non-empty name.')