import click
import pickle
import pytest
from pydanclick import core
from tests import conftest
def test_get_option_arguments_ok(valid_arguments):
# core.get_option_arguments(schema, parameter, "mega-option")
pass
def test_generate_cli_options_start():
@click.command()
@core.generate_cli_options()
def entrypoint(parameters: conftest.GenericArguments):
pass
with pytest.raises(SystemExit):
entrypoint()
@pytest.mark.parametrize(
"argument_info",
[
["name", ["--name"], click.STRING],
["version", ["--version"], click.IntRange(min=0)],
["force", ["--force"], click.BOOL],
["fruit", ["--fruit"], click.STRING],
]
)
def test_generate_cli_options_arguments(
valid_command_entrypoint,
argument_info,
):
option = next(
filter(
lambda el: el.name == argument_info[0],
valid_command_entrypoint.params
)
)
assert option.opts == argument_info[1]
assert pickle.dumps(option.type) == pickle.dumps(argument_info[2])