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.Choice(["apple", "banana", "pineapple"])], ] ) 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])