def fields_with_expected_tokens() -> FieldsWithTokens: fields = [ FieldFactory(name="name_1", value=Argument(cli_names=True, env_name=False, help="help 1")), FieldFactory(name="name_2", value=Argument(cli_names=False, env_name=True, help="help 2")), FieldFactory(name="name_3", value=Argument(cli_names=True, env_name=True, help="help 3")), FieldFactory(name="name_4", value=Argument(cli_names=["-a", "--arg"], env_name="ARG", help="help 4")), ] expected_tokens = [ ["--name-1", "help 1"], ["NAME_2", "help 2"], ["--name-3", "NAME_3", "help 3"], ["-a", "--arg", "ARG", "help 4"], ] return fields, expected_tokens
def test_turned_off_arguments_arent_gathered_from_command_line() -> None: fields_data = [ FieldFactory(name="name", value=Argument(cli_names=False)) ] cli_args = ["--name", "abcd"] with patch_cli_args(cli_args), pytest.raises(SystemExit): get_cmd_line_args(fields_data)
def test_field_type_is_correctly_casted(type_hint: Any, raw_arg: str, parsed_arg: Any) -> None: field = FieldFactory(type=type_hint) args = {field.name: raw_arg} actual = cast_args_to_fields_types(args, [field]) expected = {field.name: parsed_arg} assert actual == expected
def test_turned_off_arguments_arent_gathered_from_env() -> None: fields_data = [ FieldFactory(name="name", value=Argument(env_name=False)) ] with patch_env_args(NAME="abcd"): parsed_args = get_env_args(fields_data) assert parsed_args == {}
def test_returns_none_if_env_name_is_turned_off() -> None: field_data = FieldFactory(value=Argument(env_name=False)) assert field_data.env_name is None
def test_generates_name_based_on_field() -> None: field_data = FieldFactory(name="field_name", value=Argument(env_name=True)) assert field_data.env_name == "FIELD_NAME"
def test_returns_custom_name() -> None: expected_name = "ARG" field_data = FieldFactory(value=Argument(env_name=expected_name)) assert field_data.env_name == expected_name
def test_returns_none_if_cli_names_are_turned_off() -> None: field_data = FieldFactory(value=Argument(cli_names=False)) assert field_data.cli_names is None
def test_generates_name_based_on_field() -> None: field_data = FieldFactory(name="field_name", value=Argument(cli_names=True)) assert field_data.cli_names == ["--field-name"]
def test_returns_custom_names() -> None: expected_cli_names = ["-a", "--arg"] field_data = FieldFactory(value=Argument( cli_names=expected_cli_names)) assert field_data.cli_names == expected_cli_names