def test_unit__get_all_manageable( self, admin_user, session, app_config, user_api_factory, role_api_factory ): uapi = user_api_factory.get() # Checks a case without workspaces. wapi = WorkspaceApi(session=session, current_user=admin_user, config=app_config) assert [] == wapi.get_all_manageable() # Checks an admin_user gets all workspaces. w4 = wapi.create_workspace(label="w4") w3 = wapi.create_workspace(label="w3") w2 = wapi.create_workspace(label="w2") w1 = wapi.create_workspace(label="w1") assert [w1, w2, w3, w4] == wapi.get_all_manageable() # Checks a regular user gets none workspace. u = uapi.create_minimal_user("[email protected]", profile=Profile.USER, save_now=True) wapi = WorkspaceApi(session=session, current_user=u, config=app_config) rapi = role_api_factory.get() rapi.create_one(u, w4, UserRoleInWorkspace.READER, False) rapi.create_one(u, w3, UserRoleInWorkspace.CONTRIBUTOR, False) rapi.create_one(u, w2, UserRoleInWorkspace.CONTENT_MANAGER, False) rapi.create_one(u, w1, UserRoleInWorkspace.WORKSPACE_MANAGER, False) assert [] == wapi.get_all_manageable() # Checks a manager gets only its own workspaces. u.profile = Profile.TRUSTED_USER rapi.delete_one(u.user_id, w2.workspace_id) rapi.create_one(u, w2, UserRoleInWorkspace.WORKSPACE_MANAGER, False) assert [w1, w2] == wapi.get_all_manageable()
def test_unit__get_all_manageable(self): admin = self.session.query(User) \ .filter(User.email == '*****@*****.**').one() uapi = UserApi( session=self.session, current_user=admin, config=self.app_config, ) # Checks a case without workspaces. wapi = WorkspaceApi( session=self.session, current_user=admin, config=self.app_config, ) eq_([], wapi.get_all_manageable()) # Checks an admin gets all workspaces. w4 = wapi.create_workspace(label='w4') w3 = wapi.create_workspace(label='w3') w2 = wapi.create_workspace(label='w2') w1 = wapi.create_workspace(label='w1') eq_([w1, w2, w3, w4], wapi.get_all_manageable()) # Checks a regular user gets none workspace. gapi = GroupApi( session=self.session, current_user=None, config=self.app_config, ) u = uapi.create_minimal_user('[email protected]', [gapi.get_one(Group.TIM_USER)], True) wapi = WorkspaceApi( session=self.session, current_user=u, config=self.app_config, ) rapi = RoleApi( session=self.session, current_user=None, config=self.app_config, ) rapi.create_one(u, w4, UserRoleInWorkspace.READER, False) rapi.create_one(u, w3, UserRoleInWorkspace.CONTRIBUTOR, False) rapi.create_one(u, w2, UserRoleInWorkspace.CONTENT_MANAGER, False) rapi.create_one(u, w1, UserRoleInWorkspace.WORKSPACE_MANAGER, False) eq_([], wapi.get_all_manageable()) # Checks a manager gets only its own workspaces. u.groups.append(gapi.get_one(Group.TIM_MANAGER)) rapi.delete_one(u.user_id, w2.workspace_id) rapi.create_one(u, w2, UserRoleInWorkspace.WORKSPACE_MANAGER, False) eq_([w1, w2], wapi.get_all_manageable())