def _parse_arg_commands(commands): input_commands = commands.split(',') available_commands = Log.commands() for cmd in input_commands: if cmd not in available_commands: msg = 'command "{0}" is not available. Use --list-commands to ' \ 'get a list of all available commands.' raise ValueError(msg.format(cmd)) return input_commands
def test_arg_parser_list_commands_output(self): """Test that list commands argument outputs what's expected.""" arguments = ['--list-commands', ] data = parse_arguments(self.parser.parse_args(arguments)) test_output = NamedTemporaryFile(mode='w', delete=False) with RedirectStdout(stdout=test_output): main(data) with open(test_output.name, 'r') as output_file: output_text = output_file.read() for cmd in Log.commands(): self.assertIn(cmd, output_text)
def test_arg_parser_list_commands_output(self): """Test that list commands argument outputs what's expected.""" arguments = ['--list-commands'] data = parse_arguments(self.parser.parse_args(arguments)) test_output = NamedTemporaryFile(mode='w', delete=False) with RedirectStdout(stdout=test_output): main(data) with open(test_output.name, 'r') as output_file: output_text = output_file.read() for cmd in Log.commands(): self.assertIn(cmd, output_text)
def print_commands(): """Prints all commands available from Log with their description. """ dummy_log_file = Log() commands = Log.commands() commands.sort() for cmd in commands: cmd = getattr(dummy_log_file, 'cmd_{0}'.format(cmd)) description = cmd.__doc__ if description: description = re.sub(r'\n\s+', ' ', description) description = description.strip() print('{0}: {1}\n'.format(cmd.__name__, description))