def test_mute_no_such_step(self): """ should fail to mute a step that does not exist """ support.create_project(self, 'lewis') project = cauldron.project.get_internal_project() r = Response() step_actions.toggle_muting(r, project, 'not-a-step') self.assertTrue(r.failed) self.assertEqual(r.errors[0].code, 'NO_SUCH_STEP')
def test_toggle_muting(self): """ should reverse the muted state of the step """ support.create_project(self, 'carrol') support.add_step(self) project = cauldron.project.get_internal_project() step = project.steps[0] self.assertFalse(step.is_muted) r = Response() step_actions.toggle_muting(r, project, step.filename) self.assertTrue(step.is_muted) r = Response() step_actions.toggle_muting(r, project, step.filename) self.assertFalse(step.is_muted)
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