def test_nameless_step(self): """ should convert float index to integer """ support.create_project(self, 'minneapolis') project = cauldron.project.get_internal_project() project.naming_scheme = None r = Response() step_actions.create_step(r, project, '', '', 'This is my step') self.assertFalse(r.failed)
def test_sync_failure(self, synchronize_step_names: MagicMock): """ should fail synchronizing step names fails """ failedResponse = Response().fail('Fake-Fail', 'FAKE_FAIL').response synchronize_step_names.return_value = failedResponse support.create_project(self, 'st-paul') project = cauldron.project.internal_project r = Response() step_actions.create_step(r, project, '', '', 'This is my step') self.assertTrue(r.failed) self.assertEqual(r.errors[0], failedResponse.errors[0]) support.run_command('close')
def execute( context: cli.CommandContext, action: str = None, step_name: str = None, position: str = None, title: str = None, new_name: str = None, keep: bool = False, project: 'projects.Project' = None ) -> Response: """ :return: """ response = context.response project = ( project if project else cauldron.project.internal_project ) if not project: return response.fail( code='NO_OPEN_PROJECT', message='No project is open. Step commands require an open project' ).console( whitespace=1 ).response if not action or action == 'list': actions.echo_steps(response, project) return response if action == 'add' and not step_name: step_name = '' elif not step_name: return response.fail( code='NO_STEP_NAME', message='A step name is required for this command' ).console( whitespace=1 ).response step_name = step_name.strip('"') if action == 'add': return actions.create_step( response=response, project=project, name=step_name, position=position, title=title.strip('"') if title else title ) if action == 'modify': actions.modify_step( response=response, project=project, name=step_name, new_name=new_name, title=title, position=position ) return response if action == 'remove': return removal.remove_step( response=response, project=project, name=step_name, keep_file=keep ) if action == 'unmute': actions.toggle_muting( response=response, project=project, step_name=step_name, value=False ) return response if action == 'mute': actions.toggle_muting( response=response, project=project, step_name=step_name, value=True ) return response
def execute(context: cli.CommandContext, action: str = None, step_name: str = None, position: str = None, title: str = None, new_name: str = None, keep: bool = False, project: 'projects.Project' = None) -> Response: """ :return: """ response = context.response project = (project if project else cauldron.project.internal_project) if not project: return response.fail( code='NO_OPEN_PROJECT', message='No project is open. Step commands require an open project' ).console(whitespace=1).response if not action or action == 'list': actions.echo_steps(response, project) return response if action == 'add' and not step_name: step_name = '' elif not step_name: return response.fail( code='NO_STEP_NAME', message='A step name is required for this command').console( whitespace=1).response step_name = step_name.strip('"') if action == 'add': return actions.create_step(response=response, project=project, name=step_name, position=position, title=title.strip('"') if title else title) if action == 'modify': actions.modify_step(response=response, project=project, name=step_name, new_name=new_name, title=title, position=position) return response if action == 'remove': return removal.remove_step(response=response, project=project, name=step_name, keep_file=keep) if action == 'unmute': actions.toggle_muting(response=response, project=project, step_name=step_name, value=False) return response if action == 'mute': actions.toggle_muting(response=response, project=project, step_name=step_name, value=True) return response