Exemplo n.º 1
0
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
Exemplo n.º 2
0
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 == []
Exemplo n.º 3
0
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