def test_required_non_list_argument(): argument = Argument("foo", is_list=False, description="Foo description") assert argument.name == "foo" assert argument.is_required() assert not argument.is_list() assert argument.description == "Foo description" assert argument.default is None
def test_list_argument(): argument = Argument("foo", is_list=True, description="Foo description") assert argument.name == "foo" assert argument.is_required() assert argument.is_list() assert argument.description == "Foo description" assert argument.default == []
class CustomCommand(Command): name = "do" description = "Run customized commands." help = """\ Config <info>pyproject.toml</info> with <info>tool.poetry_scripts.scripts</info> <info> [tool.poetry_scripts.scripts] test = 'pytest' </info> """ arguments = [ Argument("cmd", required=True, description="pre-defined command to run"), ] def __init__(self, config: Dict[str, Dict[str, Union[str, List[str]]]]): super().__init__() self._scripts = config.get("scripts", {}) self._options = config.get("options", {}) def handle(self) -> int: command = self.argument("cmd") script = self._scripts.get(command) if not script: print(f"missing script {command}") return 2 subprocess.run(script) return 0