py$(PYV): commands[0]> python -m pytest -v --tb=short --basetemp=$(@D)/.tox/py$(PYV)/tmp ============================= test session starts ============================== platform sunos5 -- Python $(PYTHON_VERSION).X -- $(@D)/.tox/py$(PYV)/bin/python cachedir: .tox/py$(PYV)/.pytest_cache rootdir: $(@D) configfile: pyproject.toml testpaths: tests collecting ... collected 1336 items tests/test_arguments.py::test_nargs_star PASSED tests/test_arguments.py::test_nargs_tup PASSED tests/test_arguments.py::test_nargs_tup_composite[opts0] PASSED tests/test_arguments.py::test_nargs_tup_composite[opts1] PASSED tests/test_arguments.py::test_nargs_tup_composite[opts2] PASSED tests/test_arguments.py::test_nargs_tup_composite[opts3] PASSED tests/test_arguments.py::test_nargs_mismatch_with_tuple_type PASSED tests/test_arguments.py::test_nargs_err PASSED tests/test_arguments.py::test_bytes_args PASSED tests/test_arguments.py::test_file_args PASSED tests/test_arguments.py::test_path_allow_dash PASSED tests/test_arguments.py::test_file_atomics PASSED tests/test_arguments.py::test_stdout_default PASSED tests/test_arguments.py::test_nargs_envvar[2--None] PASSED tests/test_arguments.py::test_nargs_envvar[2-a-Takes 2 values but 1 was given.] PASSED tests/test_arguments.py::test_nargs_envvar[2-a b-expect2] PASSED tests/test_arguments.py::test_nargs_envvar[2-a b c-Takes 2 values but 3 were given.] PASSED tests/test_arguments.py::test_nargs_envvar[-1-a b c-expect4] PASSED tests/test_arguments.py::test_nargs_envvar[-1--expect5] PASSED tests/test_arguments.py::test_nargs_envvar_only_if_values_empty PASSED tests/test_arguments.py::test_empty_nargs PASSED tests/test_arguments.py::test_missing_arg PASSED tests/test_arguments.py::test_required_argument[-False-] PASSED tests/test_arguments.py::test_required_argument[ -False- ] PASSED tests/test_arguments.py::test_required_argument[foo-False-foo] PASSED tests/test_arguments.py::test_required_argument[12-False-12_0] PASSED tests/test_arguments.py::test_required_argument[12-False-12_1] PASSED tests/test_arguments.py::test_required_argument[12.1-False-12.1] PASSED tests/test_arguments.py::test_required_argument[value6-False-[]] PASSED tests/test_arguments.py::test_required_argument[value7-False-()] PASSED tests/test_arguments.py::test_required_argument[value8-False-set()] PASSED tests/test_arguments.py::test_required_argument[value9-False-frozenset()] PASSED tests/test_arguments.py::test_required_argument[value10-False-{}] PASSED tests/test_arguments.py::test_required_argument[None-False-None] PASSED tests/test_arguments.py::test_required_argument[Sentinel.UNSET-True-None] PASSED tests/test_arguments.py::test_implicit_non_required PASSED tests/test_arguments.py::test_deprecated_usage PASSED tests/test_arguments.py::test_deprecated_warning[True] PASSED tests/test_arguments.py::test_deprecated_warning[USE B INSTEAD] PASSED tests/test_arguments.py::test_deprecated_required PASSED tests/test_arguments.py::test_eat_options PASSED tests/test_arguments.py::test_nargs_star_ordering PASSED tests/test_arguments.py::test_nargs_specified_plus_star_ordering PASSED tests/test_arguments.py::test_good_defaults_for_nargs[argument_params0-args0-expected0] PASSED tests/test_arguments.py::test_good_defaults_for_nargs[argument_params1-args1-expected1] PASSED tests/test_arguments.py::test_good_defaults_for_nargs[argument_params2-args2-expected2] PASSED tests/test_arguments.py::test_good_defaults_for_nargs[argument_params3-args3-expected3] PASSED tests/test_arguments.py::test_good_defaults_for_nargs[argument_params4-args4-expected4] PASSED tests/test_arguments.py::test_good_defaults_for_nargs[argument_params5-args5-expected5] PASSED tests/test_arguments.py::test_good_defaults_for_nargs[argument_params6-args6-expected6] PASSED tests/test_arguments.py::test_good_defaults_for_nargs[argument_params7-args7-expected7] PASSED tests/test_arguments.py::test_good_defaults_for_nargs[argument_params8-args8-None] PASSED tests/test_arguments.py::test_good_defaults_for_nargs[argument_params9-args9-expected9] PASSED tests/test_arguments.py::test_good_defaults_for_nargs[argument_params10-args10-expected10] PASSED tests/test_arguments.py::test_good_defaults_for_nargs[argument_params11-args11-expected11] PASSED tests/test_arguments.py::test_good_defaults_for_nargs[argument_params12-args12-expected12] PASSED tests/test_arguments.py::test_bad_defaults_for_nargs[Yo-Error: Invalid value for '[A]...': Value must be an iterable.] PASSED tests/test_arguments.py::test_bad_defaults_for_nargs[-Error: Invalid value for '[A]...': Value must be an iterable.] PASSED tests/test_arguments.py::test_bad_defaults_for_nargs[True-Error: Invalid value for '[A]...': Value must be an iterable.] PASSED tests/test_arguments.py::test_bad_defaults_for_nargs[False-Error: Invalid value for '[A]...': Value must be an iterable.] PASSED tests/test_arguments.py::test_bad_defaults_for_nargs[12-Error: Invalid value for '[A]...': Value must be an iterable.] PASSED tests/test_arguments.py::test_bad_defaults_for_nargs[7.9-Error: Invalid value for '[A]...': Value must be an iterable.] PASSED tests/test_arguments.py::test_bad_defaults_for_nargs[default6-Error: Invalid value for '[A]...': Takes 2 values but 0 were given.] PASSED tests/test_arguments.py::test_bad_defaults_for_nargs[Sentinel.UNSET-Error: Missing argument 'A...'.] PASSED tests/test_arguments.py::test_bad_defaults_for_nargs[default8-Error: Invalid value for '[A]...': Takes 2 values but 0 were given.] PASSED tests/test_arguments.py::test_bad_defaults_for_nargs[default9-Error: Invalid value for '[A]...': Takes 2 values but 1 was given.] PASSED tests/test_arguments.py::test_bad_defaults_for_nargs[default10-Error: Invalid value for '[A]...': Takes 2 values but 3 were given.] PASSED tests/test_arguments.py::test_bad_defaults_for_nargs[default11-Error: Invalid value for '[A]...': Takes 2 values but 0 were given.] PASSED tests/test_arguments.py::test_bad_defaults_for_nargs[default12-Error: Invalid value for '[A]...': Takes 2 values but 1 was given.] PASSED tests/test_arguments.py::test_bad_defaults_for_nargs[default13-Error: Invalid value for '[A]...': Takes 2 values but 3 were given.] PASSED tests/test_arguments.py::test_bad_defaults_for_nargs[default14-Error: Invalid value for '[A]...': Takes 2 values but 0 were given.] PASSED tests/test_arguments.py::test_bad_defaults_for_nargs[default15-Error: Invalid value for '[A]...': Takes 2 values but 1 was given.] PASSED tests/test_arguments.py::test_bad_defaults_for_nargs[default16-Error: Invalid value for '[A]...': Takes 2 values but 3 were given.] PASSED tests/test_arguments.py::test_bad_defaults_for_nargs[default17-Error: Invalid value for '[A]...': Takes 2 values but 0 were given.] PASSED tests/test_arguments.py::test_bad_defaults_for_nargs[default18-Error: Invalid value for '[A]...': Takes 2 values but 1 was given.] PASSED tests/test_arguments.py::test_bad_defaults_for_nargs[default19-Error: Invalid value for '[A]...': Takes 2 values but 3 were given.] PASSED tests/test_arguments.py::test_bad_defaults_for_nargs[default20-Error: Invalid value for '[A]...': Takes 2 values but 0 were given.] PASSED tests/test_arguments.py::test_bad_defaults_for_nargs[default21-Error: Invalid value for '[A]...': Takes 2 values but 1 was given.] PASSED tests/test_arguments.py::test_bad_defaults_for_nargs[default22-Error: Invalid value for '[A]...': Takes 2 values but 3 were given.] PASSED tests/test_arguments.py::test_multiple_param_decls_not_allowed PASSED tests/test_arguments.py::test_multiple_not_allowed PASSED tests/test_arguments.py::test_subcommand_help PASSED tests/test_arguments.py::test_nested_subcommand_help PASSED tests/test_arguments.py::test_when_argument_decorator_is_used_multiple_times_cls_is_preserved PASSED tests/test_arguments.py::test_duplicate_names_warning[args_one0-args_two0] PASSED tests/test_arguments.py::test_argument_custom_class_can_override_type_cast_value_and_never_sees_unset[argument_kwargs0-pass_argv0] PASSED tests/test_arguments.py::test_argument_custom_class_can_override_type_cast_value_and_never_sees_unset[argument_kwargs1-pass_argv1] PASSED tests/test_arguments.py::test_argument_custom_class_can_override_type_cast_value_and_never_sees_unset[argument_kwargs2-pass_argv2] PASSED tests/test_arguments.py::test_argument_custom_class_can_override_type_cast_value_and_never_sees_unset[argument_kwargs3-pass_argv3] PASSED tests/test_arguments.py::test_argument_custom_class_can_override_type_cast_value_and_never_sees_unset[argument_kwargs4-pass_argv4] PASSED tests/test_arguments.py::test_argument_custom_class_can_override_type_cast_value_and_never_sees_unset[argument_kwargs5-pass_argv5] PASSED tests/test_basic.py::test_basic_functionality PASSED tests/test_basic.py::test_repr PASSED tests/test_basic.py::test_return_values PASSED tests/test_basic.py::test_basic_group PASSED tests/test_basic.py::test_group_commands_dict PASSED tests/test_basic.py::test_group_from_list PASSED tests/test_basic.py::test_string_option[args0-S:[no value]] PASSED tests/test_basic.py::test_string_option[args1-S:[42]] PASSED tests/test_basic.py::test_string_option[args2-Error: Option '--s' requires an argument.] PASSED tests/test_basic.py::test_string_option[args3-S:[]] PASSED tests/test_basic.py::test_string_option[args4-S:[\u2603]] PASSED tests/test_basic.py::test_int_option[args0-I:[84]] PASSED tests/test_basic.py::test_int_option[args1-I:[46]] PASSED tests/test_basic.py::test_int_option[args2-Error: Invalid value for '--i': 'x' is not a valid integer.] PASSED tests/test_basic.py::test_uuid_option[args0-U:[ba122011-349f-423b-873b-9d6a79c688ab]] PASSED tests/test_basic.py::test_uuid_option[args1-U:[821592c1-c50e-4971-9cd6-e89dc6832f86]] PASSED tests/test_basic.py::test_uuid_option[args2-Error: Invalid value for '--u': 'x' is not a valid UUID.] PASSED tests/test_basic.py::test_float_option[args0-F:[42.0]] PASSED tests/test_basic.py::test_float_option[--f=23.5-F:[23.5]] PASSED tests/test_basic.py::test_float_option[--f=x-Error: Invalid value for '--f': 'x' is not a valid float.] PASSED tests/test_basic.py::test_boolean_switch[args0-True-True] PASSED tests/test_basic.py::test_boolean_switch[args1-False-True] PASSED tests/test_basic.py::test_boolean_switch[args2-None-True] PASSED tests/test_basic.py::test_boolean_switch[args3-Sentinel.UNSET-True] PASSED tests/test_basic.py::test_boolean_switch[args4-True-False] PASSED tests/test_basic.py::test_boolean_switch[args5-False-False] PASSED tests/test_basic.py::test_boolean_switch[args6-None-False] PASSED tests/test_basic.py::test_boolean_switch[args7-Sentinel.UNSET-False] PASSED tests/test_basic.py::test_boolean_switch[args8-True-True] PASSED tests/test_basic.py::test_boolean_switch[args9-False-False] PASSED tests/test_basic.py::test_boolean_switch[args10-None-None] PASSED tests/test_basic.py::test_boolean_switch[args11-Sentinel.UNSET-False] PASSED tests/test_basic.py::test_boolean_flag[True-args0-True] PASSED tests/test_basic.py::test_boolean_flag[True-args1-True] PASSED tests/test_basic.py::test_boolean_flag[False-args2-True] PASSED tests/test_basic.py::test_boolean_flag[False-args3-False] PASSED tests/test_basic.py::test_boolean_flag[None-args4-True] PASSED tests/test_basic.py::test_boolean_flag[None-args5-None] PASSED tests/test_basic.py::test_boolean_conversion[1-True] PASSED tests/test_basic.py::test_boolean_conversion[true-True] PASSED tests/test_basic.py::test_boolean_conversion[t-True] PASSED tests/test_basic.py::test_boolean_conversion[yes-True] PASSED tests/test_basic.py::test_boolean_conversion[y-True] PASSED tests/test_basic.py::test_boolean_conversion[on-True] PASSED tests/test_basic.py::test_boolean_conversion[0-False] PASSED tests/test_basic.py::test_boolean_conversion[false-False] PASSED tests/test_basic.py::test_boolean_conversion[f-False] PASSED tests/test_basic.py::test_boolean_conversion[no-False] PASSED tests/test_basic.py::test_boolean_conversion[n-False] PASSED tests/test_basic.py::test_boolean_conversion[off-False] PASSED tests/test_basic.py::test_flag_value_dual_options[True-args0-upper] PASSED tests/test_basic.py::test_flag_value_dual_options[True-args1-lower] PASSED tests/test_basic.py::test_flag_value_dual_options[False-args2-upper] PASSED tests/test_basic.py::test_flag_value_dual_options[False-args3-lower] PASSED tests/test_basic.py::test_flag_value_dual_options[None-args4-upper] PASSED tests/test_basic.py::test_flag_value_dual_options[None-args5-lower] PASSED tests/test_basic.py::test_flag_value_dual_options[Sentinel.UNSET-args6-upper] PASSED tests/test_basic.py::test_flag_value_dual_options[Sentinel.UNSET-args7-lower] PASSED tests/test_basic.py::test_flag_value_dual_options[True-args8-lower] PASSED tests/test_basic.py::test_flag_value_dual_options[True-args9-upper] PASSED tests/test_basic.py::test_flag_value_dual_options[upper-args10-upper] PASSED tests/test_basic.py::test_flag_value_dual_options[lower-args11-lower] PASSED tests/test_basic.py::test_flag_value_dual_options[uPPer-args12-uPPer] PASSED tests/test_basic.py::test_flag_value_dual_options[lOwEr-args13-lOwEr] PASSED tests/test_basic.py::test_flag_value_dual_options[ \u1555( \u141b )\u1557 -args14- \u1555( \u141b )\u1557 ] PASSED tests/test_basic.py::test_flag_value_dual_options[None-args15-None] PASSED tests/test_basic.py::test_flag_value_dual_options[Sentinel.UNSET-args16-None] PASSED tests/test_basic.py::test_flag_value_dual_options[True-args17-upper] PASSED tests/test_basic.py::test_flag_value_dual_options[False-args18-False] PASSED tests/test_basic.py::test_flag_value_dual_options[42-args19-42] PASSED tests/test_basic.py::test_flag_value_dual_options[12.3-args20-12.3] PASSED tests/test_basic.py::test_file_option PASSED tests/test_basic.py::test_file_lazy_mode PASSED tests/test_basic.py::test_path_option PASSED tests/test_basic.py::test_choice_option PASSED tests/test_basic.py::test_choice_argument PASSED tests/test_basic.py::test_choice_argument_enum PASSED tests/test_basic.py::test_choice_argument_custom_type PASSED tests/test_basic.py::test_choice_argument_none PASSED tests/test_basic.py::test_datetime_option_default PASSED tests/test_basic.py::test_datetime_option_custom PASSED tests/test_basic.py::test_required_option PASSED tests/test_basic.py::test_evaluation_order PASSED tests/test_basic.py::test_hidden_option PASSED tests/test_basic.py::test_hidden_command PASSED tests/test_basic.py::test_hidden_group PASSED tests/test_basic.py::test_summary_line PASSED tests/test_basic.py::test_help_invalid_default PASSED tests/test_chain.py::test_basic_chaining PASSED tests/test_chain.py::test_chaining_help[args0-COMMAND1 [ARGS]... [COMMAND2 [ARGS]...]...] PASSED tests/test_chain.py::test_chaining_help[args1-ROOT HELP] PASSED tests/test_chain.py::test_chaining_help[args2-SDIST HELP] PASSED tests/test_chain.py::test_chaining_help[args3-BDIST HELP] PASSED tests/test_chain.py::test_chaining_help[args4-SDIST HELP] PASSED tests/test_chain.py::test_chaining_with_options PASSED tests/test_chain.py::test_no_command_result_callback[False-1] PASSED tests/test_chain.py::test_no_command_result_callback[True-[]] PASSED tests/test_chain.py::test_chaining_with_arguments PASSED tests/test_chain.py::test_pipeline[args0-foo\nbar-expect0] PASSED tests/test_chain.py::test_pipeline[args1-foo \n bar-expect1] PASSED tests/test_chain.py::test_pipeline[args2-foo \n bar-expect2] PASSED tests/test_chain.py::test_args_and_chain PASSED tests/test_chain.py::test_group_arg_behavior PASSED tests/test_chain.py::test_group_chaining XFAIL tests/test_command_decorators.py::test_command_no_parens PASSED tests/test_command_decorators.py::test_custom_command_no_parens PASSED tests/test_command_decorators.py::test_group_no_parens PASSED tests/test_command_decorators.py::test_params_argument PASSED tests/test_command_decorators.py::test_generate_name[init_data] PASSED tests/test_command_decorators.py::test_generate_name[init_data_command] PASSED tests/test_command_decorators.py::test_generate_name[init_data_cmd] PASSED tests/test_command_decorators.py::test_generate_name[init_data_group] PASSED tests/test_command_decorators.py::test_generate_name[init_data_grp] PASSED tests/test_commands.py::test_other_command_invoke PASSED tests/test_commands.py::test_other_command_forward PASSED tests/test_commands.py::test_forwarded_params_consistency PASSED tests/test_commands.py::test_auto_shorthelp PASSED tests/test_commands.py::test_command_no_args_is_help PASSED tests/test_commands.py::test_default_maps PASSED tests/test_commands.py::test_group_with_args[args0-2-Error: Missing command.] PASSED tests/test_commands.py::test_group_with_args[args1-0-Show this message and exit.] PASSED tests/test_commands.py::test_group_with_args[args2-0-obj=obj1\nmove\n] PASSED tests/test_commands.py::test_group_with_args[args3-2-Show this message and exit.] PASSED tests/test_commands.py::test_custom_parser PASSED tests/test_commands.py::test_object_propagation PASSED tests/test_commands.py::test_other_command_invoke_with_defaults[opt_params0-42] PASSED tests/test_commands.py::test_other_command_invoke_with_defaults[opt_params1-15] PASSED tests/test_commands.py::test_other_command_invoke_with_defaults[opt_params2-expected2] PASSED tests/test_commands.py::test_other_command_invoke_with_defaults[opt_params3-None] PASSED tests/test_commands.py::test_other_command_invoke_with_defaults[opt_params4-None] PASSED tests/test_commands.py::test_other_command_invoke_with_defaults[opt_params5-False] PASSED tests/test_commands.py::test_other_command_invoke_with_defaults[opt_params6-True] PASSED tests/test_commands.py::test_other_command_invoke_with_defaults[opt_params7-3.14] PASSED tests/test_commands.py::test_other_command_invoke_with_defaults[opt_params8-expected8] PASSED tests/test_commands.py::test_other_command_invoke_with_defaults[opt_params9-expected9] PASSED tests/test_commands.py::test_other_command_invoke_with_defaults[opt_params10-None] PASSED tests/test_commands.py::test_other_command_invoke_with_defaults[opt_params11-b] PASSED tests/test_commands.py::test_other_command_invoke_with_defaults[opt_params12-/tmp] PASSED tests/test_commands.py::test_other_command_invoke_with_defaults[opt_params13-False] PASSED tests/test_commands.py::test_other_command_invoke_with_defaults[opt_params14-True] PASSED tests/test_commands.py::test_other_command_invoke_with_defaults[opt_params15-0] PASSED tests/test_commands.py::test_other_command_invoke_with_defaults[opt_params16-secret] PASSED tests/test_commands.py::test_invoked_subcommand PASSED tests/test_commands.py::test_aliased_command_canonical_name PASSED tests/test_commands.py::test_group_add_command_name PASSED tests/test_commands.py::test_iter_params_for_processing[invocation_order0-declaration_order0-expected_order0] PASSED tests/test_commands.py::test_iter_params_for_processing[invocation_order1-declaration_order1-expected_order1] PASSED tests/test_commands.py::test_iter_params_for_processing[invocation_order2-declaration_order2-expected_order2] PASSED tests/test_commands.py::test_iter_params_for_processing[invocation_order3-declaration_order3-expected_order3] PASSED tests/test_commands.py::test_iter_params_for_processing[invocation_order4-declaration_order4-expected_order4] PASSED tests/test_commands.py::test_iter_params_for_processing[invocation_order5-declaration_order5-expected_order5] PASSED tests/test_commands.py::test_iter_params_for_processing[invocation_order6-declaration_order6-expected_order6] PASSED tests/test_commands.py::test_iter_params_for_processing[invocation_order7-declaration_order7-expected_order7] PASSED tests/test_commands.py::test_iter_params_for_processing[invocation_order8-declaration_order8-expected_order8] PASSED tests/test_commands.py::test_iter_params_for_processing[invocation_order9-declaration_order9-expected_order9] PASSED tests/test_commands.py::test_iter_params_for_processing[invocation_order10-declaration_order10-expected_order10] PASSED tests/test_commands.py::test_iter_params_for_processing[invocation_order11-declaration_order11-expected_order11] PASSED tests/test_commands.py::test_iter_params_for_processing[invocation_order12-declaration_order12-expected_order12] PASSED tests/test_commands.py::test_iter_params_for_processing[invocation_order13-declaration_order13-expected_order13] PASSED tests/test_commands.py::test_iter_params_for_processing[invocation_order14-declaration_order14-expected_order14] PASSED tests/test_commands.py::test_iter_params_for_processing[invocation_order15-declaration_order15-expected_order15] PASSED tests/test_commands.py::test_iter_params_for_processing[invocation_order16-declaration_order16-expected_order16] PASSED tests/test_commands.py::test_iter_params_for_processing[invocation_order17-declaration_order17-expected_order17] PASSED tests/test_commands.py::test_iter_params_for_processing[invocation_order18-declaration_order18-expected_order18] PASSED tests/test_commands.py::test_iter_params_for_processing[invocation_order19-declaration_order19-expected_order19] PASSED tests/test_commands.py::test_iter_params_for_processing[invocation_order20-declaration_order20-expected_order20] PASSED tests/test_commands.py::test_iter_params_for_processing[invocation_order21-declaration_order21-expected_order21] PASSED tests/test_commands.py::test_iter_params_for_processing[invocation_order22-declaration_order22-expected_order22] PASSED tests/test_commands.py::test_iter_params_for_processing[invocation_order23-declaration_order23-expected_order23] PASSED tests/test_commands.py::test_iter_params_for_processing[invocation_order24-declaration_order24-expected_order24] PASSED tests/test_commands.py::test_iter_params_for_processing[invocation_order25-declaration_order25-expected_order25] PASSED tests/test_commands.py::test_iter_params_for_processing[invocation_order26-declaration_order26-expected_order26] PASSED tests/test_commands.py::test_iter_params_for_processing[invocation_order27-declaration_order27-expected_order27] PASSED tests/test_commands.py::test_iter_params_for_processing[invocation_order28-declaration_order28-expected_order28] PASSED tests/test_commands.py::test_iter_params_for_processing[invocation_order29-declaration_order29-expected_order29] PASSED tests/test_commands.py::test_iter_params_for_processing[invocation_order30-declaration_order30-expected_order30] PASSED tests/test_commands.py::test_iter_params_for_processing[invocation_order31-declaration_order31-expected_order31] PASSED tests/test_commands.py::test_iter_params_for_processing[invocation_order32-declaration_order32-expected_order32] PASSED tests/test_commands.py::test_iter_params_for_processing[invocation_order33-declaration_order33-expected_order33] PASSED tests/test_commands.py::test_help_param_priority PASSED tests/test_commands.py::test_unprocessed_options PASSED tests/test_commands.py::test_deprecated_in_help_messages[True-CLI HELP] PASSED tests/test_commands.py::test_deprecated_in_help_messages[True-None] PASSED tests/test_commands.py::test_deprecated_in_help_messages[USE OTHER COMMAND INSTEAD-CLI HELP] PASSED tests/test_commands.py::test_deprecated_in_help_messages[USE OTHER COMMAND INSTEAD-None] PASSED tests/test_commands.py::test_deprecated_in_invocation[True] PASSED tests/test_commands.py::test_deprecated_in_invocation[USE OTHER COMMAND INSTEAD] PASSED tests/test_commands.py::test_command_parse_args_collects_option_prefixes PASSED tests/test_commands.py::test_group_parse_args_collects_base_option_prefixes PASSED tests/test_commands.py::test_group_invoke_collects_used_option_prefixes PASSED tests/test_commands.py::test_abort_exceptions_with_disabled_standalone_mode[EOFError] PASSED tests/test_commands.py::test_abort_exceptions_with_disabled_standalone_mode[KeyboardInterrupt] PASSED tests/test_compat.py::test_is_jupyter_kernel_output PASSED tests/test_context.py::test_ensure_context_objects PASSED tests/test_context.py::test_get_context_objects PASSED tests/test_context.py::test_get_context_objects_no_ensuring PASSED tests/test_context.py::test_get_context_objects_missing PASSED tests/test_context.py::test_multi_enter PASSED tests/test_context.py::test_global_context_object PASSED tests/test_context.py::test_context_meta PASSED tests/test_context.py::test_make_pass_meta_decorator PASSED tests/test_context.py::test_make_pass_meta_decorator_doc PASSED tests/test_context.py::test_hiding_of_unset_sentinel_in_callbacks PASSED tests/test_context.py::test_context_pushing PASSED tests/test_context.py::test_pass_obj PASSED tests/test_context.py::test_close_before_pop PASSED tests/test_context.py::test_close_before_exit PASSED tests/test_context.py::test_multiple_eager_callbacks[natural_order] PASSED tests/test_context.py::test_multiple_eager_callbacks[eagerness_precedence] PASSED tests/test_context.py::test_no_state_leaks PASSED tests/test_context.py::test_with_resource PASSED tests/test_context.py::test_with_resource_exception PASSED tests/test_context.py::test_with_resource_nested_exception PASSED tests/test_context.py::test_make_pass_decorator_args PASSED tests/test_context.py::test_propagate_show_default_setting PASSED tests/test_context.py::test_exit_not_standalone PASSED tests/test_context.py::test_parameter_source[default] PASSED tests/test_context.py::test_parameter_source[default_map] PASSED tests/test_context.py::test_parameter_source[commandline short] PASSED tests/test_context.py::test_parameter_source[commandline long] PASSED tests/test_context.py::test_parameter_source[environment auto] PASSED tests/test_context.py::test_parameter_source[environment manual] PASSED tests/test_context.py::test_propagate_opt_prefixes PASSED tests/test_custom_classes.py::test_command_context_class PASSED tests/test_custom_classes.py::test_context_invoke_type PASSED tests/test_custom_classes.py::test_context_formatter_class PASSED tests/test_custom_classes.py::test_group_command_class PASSED tests/test_custom_classes.py::test_group_group_class PASSED tests/test_custom_classes.py::test_group_group_class_self PASSED tests/test_defaults.py::test_basic_defaults PASSED tests/test_defaults.py::test_multiple_defaults PASSED tests/test_defaults.py::test_nargs_plus_multiple PASSED tests/test_defaults.py::test_multiple_flag_default PASSED tests/test_defaults.py::test_flag_default_map PASSED tests/test_defaults.py::test_shared_param_prefers_first_default PASSED tests/test_formatting.py::test_basic_functionality PASSED tests/test_formatting.py::test_wrapping_long_options_strings PASSED tests/test_formatting.py::test_wrapping_long_command_name PASSED tests/test_formatting.py::test_formatting_empty_help_lines PASSED tests/test_formatting.py::test_formatting_usage_error PASSED tests/test_formatting.py::test_formatting_usage_error_metavar_missing_arg PASSED tests/test_formatting.py::test_formatting_usage_error_metavar_bad_arg PASSED tests/test_formatting.py::test_formatting_usage_error_nested PASSED tests/test_formatting.py::test_formatting_usage_error_no_help PASSED tests/test_formatting.py::test_formatting_usage_custom_help PASSED tests/test_formatting.py::test_formatting_custom_type_metavar PASSED tests/test_formatting.py::test_truncating_docstring PASSED tests/test_formatting.py::test_truncating_docstring_no_help PASSED tests/test_formatting.py::test_removing_multiline_marker PASSED tests/test_formatting.py::test_global_show_default PASSED tests/test_formatting.py::test_formatting_with_options_metavar_empty PASSED tests/test_formatting.py::test_help_formatter_write_text PASSED tests/test_imports.py::test_light_imports PASSED tests/test_info_dict.py::test_parameter[Func ParamType] PASSED tests/test_info_dict.py::test_parameter[UNPROCESSED ParamType] PASSED tests/test_info_dict.py::test_parameter[STRING ParamType] PASSED tests/test_info_dict.py::test_parameter[Choice ParamType] PASSED tests/test_info_dict.py::test_parameter[DateTime ParamType] PASSED tests/test_info_dict.py::test_parameter[INT ParamType] PASSED tests/test_info_dict.py::test_parameter[IntRange ParamType] PASSED tests/test_info_dict.py::test_parameter[FLOAT ParamType] PASSED tests/test_info_dict.py::test_parameter[FloatRange ParamType] PASSED tests/test_info_dict.py::test_parameter[Bool ParamType] PASSED tests/test_info_dict.py::test_parameter[UUID ParamType] PASSED tests/test_info_dict.py::test_parameter[File ParamType] PASSED tests/test_info_dict.py::test_parameter[Path ParamType] PASSED tests/test_info_dict.py::test_parameter[Tuple ParamType] PASSED tests/test_info_dict.py::test_parameter[Option] PASSED tests/test_info_dict.py::test_parameter[Flag Option] PASSED tests/test_info_dict.py::test_parameter[Argument] PASSED tests/test_info_dict.py::test_command[Command] PASSED tests/test_info_dict.py::test_command[Group] PASSED tests/test_info_dict.py::test_command[Nested Group] PASSED tests/test_info_dict.py::test_context PASSED tests/test_info_dict.py::test_paramtype_no_name PASSED tests/test_normalization.py::test_option_normalization PASSED tests/test_normalization.py::test_choice_normalization PASSED tests/test_normalization.py::test_command_normalization PASSED tests/test_options.py::test_prefixes PASSED tests/test_options.py::test_invalid_option PASSED tests/test_options.py::test_deprecated_usage[True] PASSED tests/test_options.py::test_deprecated_usage[USE B INSTEAD] PASSED tests/test_options.py::test_deprecated_warning[True] PASSED tests/test_options.py::test_deprecated_warning[USE B INSTEAD] PASSED tests/test_options.py::test_deprecated_required PASSED tests/test_options.py::test_deprecated_prompt PASSED tests/test_options.py::test_invalid_nargs PASSED tests/test_options.py::test_nargs_tup_composite_mult PASSED tests/test_options.py::test_counting PASSED tests/test_options.py::test_unknown_options[--foo] PASSED tests/test_options.py::test_unknown_options[-f] PASSED tests/test_options.py::test_suggest_possible_options[--cat-Did you mean --count?] PASSED tests/test_options.py::test_suggest_possible_options[--bounds-(Possible options: --bound, --count)] PASSED tests/test_options.py::test_suggest_possible_options[--bount-(Possible options: --bound, --count)] PASSED tests/test_options.py::test_multiple_required PASSED tests/test_options.py::test_good_defaults_for_multiple[True-1-default0-expected0] PASSED tests/test_options.py::test_good_defaults_for_multiple[True-1-default1-expected1] PASSED tests/test_options.py::test_good_defaults_for_multiple[True-1-default2-expected2] PASSED tests/test_options.py::test_good_defaults_for_multiple[True-1-default3-expected3] PASSED tests/test_options.py::test_good_defaults_for_multiple[True-1-default4-expected4] PASSED tests/test_options.py::test_good_defaults_for_multiple[True-1-default5-expected5] PASSED tests/test_options.py::test_good_defaults_for_multiple[True-1-None-expected6] PASSED tests/test_options.py::test_good_defaults_for_multiple[True-1-Sentinel.UNSET-expected7] PASSED tests/test_options.py::test_good_defaults_for_multiple[True-1-default8-expected8] PASSED tests/test_options.py::test_good_defaults_for_multiple[True-1-default9-expected9] PASSED tests/test_options.py::test_good_defaults_for_multiple[True-1-default10-expected10] PASSED tests/test_options.py::test_good_defaults_for_multiple[True-1-default11-expected11] PASSED tests/test_options.py::test_good_defaults_for_multiple[True-1-default12-expected12] PASSED tests/test_options.py::test_good_defaults_for_multiple[True-1-default13-expected13] PASSED tests/test_options.py::test_good_defaults_for_multiple[True-1-default14-expected14] PASSED tests/test_options.py::test_good_defaults_for_multiple[True-1-default15-expected15] PASSED tests/test_options.py::test_good_defaults_for_multiple[True-1-default16-expected16] PASSED tests/test_options.py::test_good_defaults_for_multiple[True-2-default17-expected17] PASSED tests/test_options.py::test_good_defaults_for_multiple[True-2-default18-expected18] PASSED tests/test_options.py::test_good_defaults_for_multiple[True-2-default19-expected19] PASSED tests/test_options.py::test_good_defaults_for_multiple[True-2-default20-expected20] PASSED tests/test_options.py::test_good_defaults_for_multiple[True-2-default21-expected21] PASSED tests/test_options.py::test_good_defaults_for_multiple[True-2-default22-expected22] PASSED tests/test_options.py::test_good_defaults_for_multiple[True-2-None-expected23] PASSED tests/test_options.py::test_good_defaults_for_multiple[True-2-Sentinel.UNSET-expected24] PASSED tests/test_options.py::test_good_defaults_for_multiple[True-2-default25-expected25] PASSED tests/test_options.py::test_good_defaults_for_multiple[True-2-default26-expected26] PASSED tests/test_options.py::test_good_defaults_for_multiple[True-2-default27-expected27] PASSED tests/test_options.py::test_good_defaults_for_multiple[True-2-default28-expected28] PASSED tests/test_options.py::test_good_defaults_for_multiple[True-2-default29-expected29] PASSED tests/test_options.py::test_good_defaults_for_multiple[True-2-default30-expected30] PASSED tests/test_options.py::test_good_defaults_for_multiple[True-2-default31-expected31] PASSED tests/test_options.py::test_good_defaults_for_multiple[True-2-default32-expected32] PASSED tests/test_options.py::test_good_defaults_for_multiple[False-2-default33-expected33] PASSED tests/test_options.py::test_bad_defaults_for_multiple[True-1-Yo-None-Error: Invalid value for '-a': Value must be an iterable.] PASSED tests/test_options.py::test_bad_defaults_for_multiple[True-1--None-Error: Invalid value for '-a': Value must be an iterable.] PASSED tests/test_options.py::test_bad_defaults_for_multiple[True-1-True-None-Error: Invalid value for '-a': Value must be an iterable.] PASSED tests/test_options.py::test_bad_defaults_for_multiple[True-1-False-None-Error: Invalid value for '-a': Value must be an iterable.] PASSED tests/test_options.py::test_bad_defaults_for_multiple[True-1-12-None-Error: Invalid value for '-a': Value must be an iterable.] PASSED tests/test_options.py::test_bad_defaults_for_multiple[True-1-7.9-None-Error: Invalid value for '-a': Value must be an iterable.] PASSED tests/test_options.py::test_bad_defaults_for_multiple[False-2-42-None-Error: Invalid value for '-a': Value must be an iterable.] PASSED tests/test_options.py::test_bad_defaults_for_multiple[True-2-default7-None-Error: Invalid value for '-a': Value must be an iterable.] PASSED tests/test_options.py::test_bad_defaults_for_multiple[True-2-default8-None-Error: Invalid value for '-a': Value must be an iterable.] PASSED tests/test_options.py::test_bad_defaults_for_multiple[True-2-default9-None-Error: Invalid value for '-a': Value must be an iterable.] PASSED tests/test_options.py::test_bad_defaults_for_multiple[True-2-default10-ValueError-'nargs' must be 0 \\(or None\\) for type , but it was 2\\.] PASSED tests/test_options.py::test_bad_defaults_for_multiple[True-2-default11-ValueError-'nargs' must be 1 \\(or None\\) for type , but it was 2\\.] PASSED tests/test_options.py::test_bad_defaults_for_multiple[True-2-default12-ValueError-'nargs' must be 3 \\(or None\\) for type , but it was 2\\.] PASSED tests/test_options.py::test_bad_defaults_for_multiple[True-2-default13-None-Error: Invalid value for '-a': 2 values are required, but 0 were given.] PASSED tests/test_options.py::test_bad_defaults_for_multiple[False-2-default14-None-Error: Invalid value for '-a': Takes 2 values but 1 was given.] PASSED tests/test_options.py::test_bad_defaults_for_multiple[True-2-default15-ValueError-'nargs' must be 1 \\(or None\\) for type , but it was 2\\.] PASSED tests/test_options.py::test_empty_envvar[MYPATH] PASSED tests/test_options.py::test_empty_envvar[AUTO_MYPATH] PASSED tests/test_options.py::test_multiple_envvar PASSED tests/test_options.py::test_boolean_flag_envvar[SHOUT-true-True] PASSED tests/test_options.py::test_boolean_flag_envvar[SHOUT-false-False] PASSED tests/test_options.py::test_boolean_flag_envvar[SHOUT-True-True] PASSED tests/test_options.py::test_boolean_flag_envvar[SHOUT-False-False] PASSED tests/test_options.py::test_boolean_flag_envvar[SHOUT-TRUE-True] PASSED tests/test_options.py::test_boolean_flag_envvar[SHOUT-FALSE-False] PASSED tests/test_options.py::test_boolean_flag_envvar[SHOUT-TruE-True] PASSED tests/test_options.py::test_boolean_flag_envvar[SHOUT-truE-True] PASSED tests/test_options.py::test_boolean_flag_envvar[SHOUT-FaLsE-False] PASSED tests/test_options.py::test_boolean_flag_envvar[SHOUT-falsE-False] PASSED tests/test_options.py::test_boolean_flag_envvar[SHOUT-true -True] PASSED tests/test_options.py::test_boolean_flag_envvar[SHOUT- true -True] PASSED tests/test_options.py::test_boolean_flag_envvar[SHOUT- true-True] PASSED tests/test_options.py::test_boolean_flag_envvar[SHOUT-false -False] PASSED tests/test_options.py::test_boolean_flag_envvar[SHOUT- false -False] PASSED tests/test_options.py::test_boolean_flag_envvar[SHOUT- false-False] PASSED tests/test_options.py::test_boolean_flag_envvar[SHOUT-1-True] PASSED tests/test_options.py::test_boolean_flag_envvar[SHOUT-0-False] PASSED tests/test_options.py::test_boolean_flag_envvar[SHOUT-t-True] PASSED tests/test_options.py::test_boolean_flag_envvar[SHOUT-T-True] PASSED tests/test_options.py::test_boolean_flag_envvar[SHOUT- T -True] PASSED tests/test_options.py::test_boolean_flag_envvar[SHOUT-f-False] PASSED tests/test_options.py::test_boolean_flag_envvar[SHOUT-y-True] PASSED tests/test_options.py::test_boolean_flag_envvar[SHOUT-n-False] PASSED tests/test_options.py::test_boolean_flag_envvar[SHOUT-yes-True] PASSED tests/test_options.py::test_boolean_flag_envvar[SHOUT-no-False] PASSED tests/test_options.py::test_boolean_flag_envvar[SHOUT-on-True] PASSED tests/test_options.py::test_boolean_flag_envvar[SHOUT-off-False] PASSED tests/test_options.py::test_boolean_flag_envvar[SHOUT-None-False] PASSED tests/test_options.py::test_boolean_flag_envvar[SHOUT--False] PASSED tests/test_options.py::test_boolean_flag_envvar[SHOUT- -False] PASSED tests/test_options.py::test_boolean_flag_envvar[SHOUT- -False] PASSED tests/test_options.py::test_boolean_flag_envvar[SHOUT -True-False] PASSED tests/test_options.py::test_boolean_flag_envvar[SHOUT -False-False] PASSED tests/test_options.py::test_boolean_flag_envvar[ SHOUT -True-False] PASSED tests/test_options.py::test_boolean_flag_envvar[ SHOUT -False-False] PASSED tests/test_options.py::test_boolean_flag_envvar[ SHOUT-True-False] PASSED tests/test_options.py::test_boolean_flag_envvar[ SHOUT-False-False] PASSED tests/test_options.py::test_boolean_flag_envvar[SH OUT-True-False] PASSED tests/test_options.py::test_boolean_flag_envvar[SH OUT-False-False] PASSED tests/test_options.py::test_boolean_flag_envvar[RANDOM-True-False] PASSED tests/test_options.py::test_boolean_flag_envvar[NO_SHOUT-True-False] PASSED tests/test_options.py::test_boolean_flag_envvar[NO_SHOUT-False-False] PASSED tests/test_options.py::test_boolean_flag_envvar[NOSHOUT-True-False] PASSED tests/test_options.py::test_boolean_flag_envvar[NOSHOUT-False-False] PASSED tests/test_options.py::test_boolean_envvar_bad_values[tr ue] PASSED tests/test_options.py::test_boolean_envvar_bad_values[fa lse] PASSED tests/test_options.py::test_boolean_envvar_bad_values[10] PASSED tests/test_options.py::test_boolean_envvar_bad_values[01] PASSED tests/test_options.py::test_boolean_envvar_bad_values[00] PASSED tests/test_options.py::test_boolean_envvar_bad_values[11] PASSED tests/test_options.py::test_boolean_envvar_bad_values[0.0] PASSED tests/test_options.py::test_boolean_envvar_bad_values[1.1] PASSED tests/test_options.py::test_boolean_envvar_bad_values[randomstring] PASSED tests/test_options.py::test_boolean_envvar_bad_values[None] PASSED tests/test_options.py::test_boolean_envvar_bad_values['None'] PASSED tests/test_options.py::test_boolean_envvar_bad_values[A B] PASSED tests/test_options.py::test_boolean_envvar_bad_values[ 1 2 ] PASSED tests/test_options.py::test_boolean_envvar_bad_values[9.3] PASSED tests/test_options.py::test_boolean_envvar_bad_values[a;n] PASSED tests/test_options.py::test_boolean_envvar_bad_values[x:y] PASSED tests/test_options.py::test_boolean_envvar_bad_values[i/o] PASSED tests/test_options.py::test_multiple_default_help PASSED tests/test_options.py::test_show_default_default_map PASSED tests/test_options.py::test_multiple_default_type PASSED tests/test_options.py::test_multiple_default_composite_type PASSED tests/test_options.py::test_parse_multiple_default_composite_type PASSED tests/test_options.py::test_dynamic_default_help_unset PASSED tests/test_options.py::test_dynamic_default_help_text PASSED tests/test_options.py::test_dynamic_default_help_special_method PASSED tests/test_options.py::test_intrange_default_help_text[type0-1<=x<=32] PASSED tests/test_options.py::test_intrange_default_help_text[type1-1=1] PASSED tests/test_options.py::test_intrange_default_help_text[type3-x<=32] PASSED tests/test_options.py::test_count_default_type_help PASSED tests/test_options.py::test_file_type_help_default PASSED tests/test_options.py::test_toupper_envvar_prefix PASSED tests/test_options.py::test_nargs_envvar PASSED tests/test_options.py::test_show_envvar PASSED tests/test_options.py::test_show_envvar_auto_prefix PASSED tests/test_options.py::test_show_envvar_auto_prefix_dash_in_command PASSED tests/test_options.py::test_custom_validation PASSED tests/test_options.py::test_callback_validates_prompt PASSED tests/test_options.py::test_winstyle_options PASSED tests/test_options.py::test_legacy_options PASSED tests/test_options.py::test_required_option[Sentinel.UNSET-True-None] PASSED tests/test_options.py::test_required_option[None-False-None] PASSED tests/test_options.py::test_required_option[-False-] PASSED tests/test_options.py::test_required_option[ -False- ] PASSED tests/test_options.py::test_required_option[foo-False-foo] PASSED tests/test_options.py::test_required_option[12-False-12_0] PASSED tests/test_options.py::test_required_option[12-False-12_1] PASSED tests/test_options.py::test_required_option[12.1-False-12.1] PASSED tests/test_options.py::test_required_option[value8-False-[]] PASSED tests/test_options.py::test_required_option[value9-False-()] PASSED tests/test_options.py::test_required_option[value10-False-set()] PASSED tests/test_options.py::test_required_option[value11-False-frozenset()] PASSED tests/test_options.py::test_required_option[value12-False-{}] PASSED tests/test_options.py::test_missing_required_flag PASSED tests/test_options.py::test_missing_choice PASSED tests/test_options.py::test_missing_envvar PASSED tests/test_options.py::test_case_insensitive_choice PASSED tests/test_options.py::test_case_insensitive_choice_returned_exactly PASSED tests/test_options.py::test_option_help_preserve_paragraphs PASSED tests/test_options.py::test_argument_custom_class PASSED tests/test_options.py::test_option_custom_class PASSED tests/test_options.py::test_option_custom_class_can_override_type_cast_value_and_never_sees_unset[--opt-option_kwargs0-pass_argv0] PASSED tests/test_options.py::test_option_custom_class_can_override_type_cast_value_and_never_sees_unset[--opt-option_kwargs1-pass_argv1] PASSED tests/test_options.py::test_option_custom_class_can_override_type_cast_value_and_never_sees_unset[--opt-option_kwargs2-pass_argv2] PASSED tests/test_options.py::test_option_custom_class_can_override_type_cast_value_and_never_sees_unset[--opt/--no-opt-option_kwargs3-pass_argv3] PASSED tests/test_options.py::test_option_custom_class_can_override_type_cast_value_and_never_sees_unset[--req-option_kwargs4-pass_argv4] PASSED tests/test_options.py::test_option_custom_class_reusable PASSED tests/test_options.py::test_help_option_custom_names_and_class[name_specs0- -h, --help Show this message and exit.\n-True] PASSED tests/test_options.py::test_help_option_custom_names_and_class[name_specs0- -h, --help Show this message and exit.\n-False] PASSED tests/test_options.py::test_help_option_custom_names_and_class[name_specs1- -h Show this message and exit.\n --help Show this message and exit.\n-True] PASSED tests/test_options.py::test_help_option_custom_names_and_class[name_specs1- -h Show this message and exit.\n --help Show this message and exit.\n-False] PASSED tests/test_options.py::test_help_option_custom_names_and_class[name_specs2- --help Show this message and exit.\n-True] PASSED tests/test_options.py::test_help_option_custom_names_and_class[name_specs2- --help Show this message and exit.\n-False] PASSED tests/test_options.py::test_bool_flag_with_type PASSED tests/test_options.py::test_aliases_for_flags PASSED tests/test_options.py::test_option_names[option_args0-aggressive] PASSED tests/test_options.py::test_option_names[option_args1-first] PASSED tests/test_options.py::test_option_names[option_args2-apple] PASSED tests/test_options.py::test_option_names[option_args3-cantaloupe] PASSED tests/test_options.py::test_option_names[option_args4-a] PASSED tests/test_options.py::test_option_names[option_args5-c] PASSED tests/test_options.py::test_option_names[option_args6-apple] PASSED tests/test_options.py::test_option_names[option_args7-cantaloupe] PASSED tests/test_options.py::test_option_names[option_args8-_from] PASSED tests/test_options.py::test_option_names[option_args9-_ret] PASSED tests/test_options.py::test_flag_duplicate_names PASSED tests/test_options.py::test_show_default_boolean_flag_name[False-no-cache] PASSED tests/test_options.py::test_show_default_boolean_flag_name[True-cache] PASSED tests/test_options.py::test_show_true_default_boolean_flag_value PASSED tests/test_options.py::test_hide_false_default_boolean_flag_value[False] PASSED tests/test_options.py::test_hide_false_default_boolean_flag_value[None] PASSED tests/test_options.py::test_show_default_string PASSED tests/test_options.py::test_show_default_with_empty_string PASSED tests/test_options.py::test_do_not_show_no_default PASSED tests/test_options.py::test_do_not_show_default_empty_multiple PASSED tests/test_options.py::test_show_default_precedence[None-None-extra_value0-False] PASSED tests/test_options.py::test_show_default_precedence[None-False-extra_value1-False] PASSED tests/test_options.py::test_show_default_precedence[None-True-extra_value2-True] PASSED tests/test_options.py::test_show_default_precedence[False-None-extra_value3-False] PASSED tests/test_options.py::test_show_default_precedence[False-False-extra_value4-False] PASSED tests/test_options.py::test_show_default_precedence[False-True-extra_value5-True] PASSED tests/test_options.py::test_show_default_precedence[True-None-extra_value6-True] PASSED tests/test_options.py::test_show_default_precedence[True-False-extra_value7-False] PASSED tests/test_options.py::test_show_default_precedence[True-True-extra_value8-True] PASSED tests/test_options.py::test_show_default_precedence[False-one-extra_value9-True] PASSED tests/test_options.py::test_option_with_optional_value[None-expect0] PASSED tests/test_options.py::test_option_with_optional_value[args1-expect1] PASSED tests/test_options.py::test_option_with_optional_value[args2-expect2] PASSED tests/test_options.py::test_option_with_optional_value[args3-expect3] PASSED tests/test_options.py::test_option_with_optional_value[args4-expect4] PASSED tests/test_options.py::test_option_with_optional_value[args5-expect5] PASSED tests/test_options.py::test_option_with_optional_value[args6-expect6] PASSED tests/test_options.py::test_option_with_optional_value[args7-expect7] PASSED tests/test_options.py::test_option_with_optional_value[args8-expect8] PASSED tests/test_options.py::test_option_with_optional_value[args9-expect9] PASSED tests/test_options.py::test_option_with_optional_value[args10-expect10] PASSED tests/test_options.py::test_option_with_optional_value[args11-expect11] PASSED tests/test_options.py::test_option_with_optional_value[args12-expect12] PASSED tests/test_options.py::test_option_with_optional_value[args13-expect13] PASSED tests/test_options.py::test_multiple_option_with_optional_value PASSED tests/test_options.py::test_type_from_flag_value PASSED tests/test_options.py::test_flag_value_and_default[opt_params0-args0-False] PASSED tests/test_options.py::test_flag_value_and_default[opt_params1-args1-True] PASSED tests/test_options.py::test_flag_value_and_default[opt_params2-args2-False] PASSED tests/test_options.py::test_flag_value_and_default[opt_params3-args3-True] PASSED tests/test_options.py::test_flag_value_and_default[opt_params4-args4-None] PASSED tests/test_options.py::test_flag_value_and_default[opt_params5-args5-True] PASSED tests/test_options.py::test_flag_value_and_default[opt_params6-args6-True] PASSED tests/test_options.py::test_flag_value_and_default[opt_params7-args7-True] PASSED tests/test_options.py::test_flag_value_and_default[opt_params8-args8-False] PASSED tests/test_options.py::test_flag_value_and_default[opt_params9-args9-True] PASSED tests/test_options.py::test_flag_value_and_default[opt_params10-args10-True] PASSED tests/test_options.py::test_flag_value_and_default[opt_params11-args11-None] PASSED tests/test_options.py::test_flag_value_and_default[opt_params12-args12-True] PASSED tests/test_options.py::test_flag_value_and_default[opt_params13-args13-True] PASSED tests/test_options.py::test_flag_value_and_default[opt_params14-args14-True] PASSED tests/test_options.py::test_flag_value_and_default[opt_params15-args15-False] PASSED tests/test_options.py::test_flag_value_and_default[opt_params16-args16-True] PASSED tests/test_options.py::test_flag_value_and_default[opt_params17-args17-True] PASSED tests/test_options.py::test_flag_value_and_default[opt_params18-args18-None] PASSED tests/test_options.py::test_flag_value_and_default[opt_params19-args19-True] PASSED tests/test_options.py::test_flag_value_and_default[opt_params20-args20-True] PASSED tests/test_options.py::test_flag_value_and_default[opt_params21-args21-True] PASSED tests/test_options.py::test_flag_value_and_default[opt_params22-args22-False] PASSED tests/test_options.py::test_flag_value_and_default[opt_params23-args23-True] PASSED tests/test_options.py::test_flag_value_and_default[opt_params24-args24-foo] PASSED tests/test_options.py::test_flag_value_and_default[opt_params25-args25-True] PASSED tests/test_options.py::test_flag_value_and_default[opt_params26-args26-None] PASSED tests/test_options.py::test_flag_value_and_default[opt_params27-args27-True] PASSED tests/test_options.py::test_flag_value_and_default[opt_params28-args28-False] PASSED tests/test_options.py::test_flag_value_and_default[opt_params29-args29-True] PASSED tests/test_options.py::test_flag_value_and_default[opt_params30-args30-False] PASSED tests/test_options.py::test_flag_value_and_default[opt_params31-args31-False] PASSED tests/test_options.py::test_flag_value_and_default[opt_params32-args32-False] PASSED tests/test_options.py::test_flag_value_and_default[opt_params33-args33-None] PASSED tests/test_options.py::test_flag_value_and_default[opt_params34-args34-False] PASSED tests/test_options.py::test_flag_value_and_default[opt_params35-args35-True] PASSED tests/test_options.py::test_flag_value_and_default[opt_params36-args36-False] PASSED tests/test_options.py::test_flag_value_and_default[opt_params37-args37-False] PASSED tests/test_options.py::test_flag_value_and_default[opt_params38-args38-False] PASSED tests/test_options.py::test_flag_value_and_default[opt_params39-args39-None] PASSED tests/test_options.py::test_flag_value_and_default[opt_params40-args40-None] PASSED tests/test_options.py::test_flag_value_and_default[opt_params41-args41-True] PASSED tests/test_options.py::test_flag_value_and_default[opt_params42-args42-None] PASSED tests/test_options.py::test_flag_value_and_default[opt_params43-args43-False] PASSED tests/test_options.py::test_flag_value_and_default[opt_params44-args44-None] PASSED tests/test_options.py::test_flag_value_and_default[opt_params45-args45-foo] PASSED tests/test_options.py::test_flag_value_and_default[opt_params46-args46-None] PASSED tests/test_options.py::test_flag_value_and_default[opt_params47-args47-None] PASSED tests/test_options.py::test_flag_value_and_default[opt_params48-args48-True] PASSED tests/test_options.py::test_flag_value_and_default[opt_params49-args49-False] PASSED tests/test_options.py::test_flag_value_and_default[opt_params50-args50-False] PASSED tests/test_options.py::test_flag_value_and_default[opt_params51-args51-False] PASSED tests/test_options.py::test_flag_value_and_default[opt_params52-args52-None] PASSED tests/test_options.py::test_flag_value_and_default[opt_params53-args53-None] PASSED tests/test_options.py::test_flag_value_and_default[opt_params54-args54-True] PASSED tests/test_options.py::test_flag_value_and_default[opt_params55-args55-False] PASSED tests/test_options.py::test_flag_value_and_default[opt_params56-args56-False] PASSED tests/test_options.py::test_flag_value_and_default[opt_params57-args57-False] PASSED tests/test_options.py::test_flag_value_and_default[opt_params58-args58-foo] PASSED tests/test_options.py::test_flag_value_and_default[opt_params59-args59-foo] PASSED tests/test_options.py::test_flag_value_and_default[opt_params60-args60-foo] PASSED tests/test_options.py::test_flag_value_and_default[opt_params61-args61-foo] PASSED tests/test_options.py::test_flag_value_and_default[opt_params62-args62-None] PASSED tests/test_options.py::test_flag_value_and_default[opt_params63-args63-None] PASSED tests/test_options.py::test_flag_value_and_default[opt_params64-args64-True] PASSED tests/test_options.py::test_flag_value_and_default[opt_params65-args65-False] PASSED tests/test_options.py::test_flag_value_and_default[opt_params66-args66-True] PASSED tests/test_options.py::test_flag_value_and_default[opt_params67-args67-False] PASSED tests/test_options.py::test_flag_value_and_default[opt_params68-args68-True] PASSED tests/test_options.py::test_flag_value_and_default[opt_params69-args69-False] PASSED tests/test_options.py::test_flag_value_and_default[opt_params70-args70-True] PASSED tests/test_options.py::test_flag_value_and_default[opt_params71-args71-False] PASSED tests/test_options.py::test_flag_value_and_default[opt_params72-args72-True] PASSED tests/test_options.py::test_flag_value_and_default[opt_params73-args73-False] PASSED tests/test_options.py::test_flag_value_and_default[opt_params74-args74-True] PASSED tests/test_options.py::test_flag_value_and_default[opt_params75-args75-False] PASSED tests/test_options.py::test_flag_value_and_default[opt_params76-args76-bar] PASSED tests/test_options.py::test_flag_value_and_default[opt_params77-args77-None] PASSED tests/test_options.py::test_flag_value_and_default[opt_params78-args78-True] PASSED tests/test_options.py::test_flag_value_and_default[opt_params79-args79-False] PASSED tests/test_options.py::test_invalid_flag_definition[args0-opts0] PASSED tests/test_options.py::test_invalid_flag_definition[args1-opts1] PASSED tests/test_options.py::test_invalid_flag_definition[args2-opts2] PASSED tests/test_options.py::test_invalid_flag_definition[args3-opts3] PASSED tests/test_options.py::test_default_dual_option_callback[True-args0-js] PASSED tests/test_options.py::test_default_dual_option_callback[True-args1-xml] PASSED tests/test_options.py::test_default_dual_option_callback[False-args2-js] PASSED tests/test_options.py::test_default_dual_option_callback[False-args3-xml] PASSED tests/test_options.py::test_default_dual_option_callback[None-args4-js] PASSED tests/test_options.py::test_default_dual_option_callback[None-args5-xml] PASSED tests/test_options.py::test_default_dual_option_callback[Sentinel.UNSET-args6-js] PASSED tests/test_options.py::test_default_dual_option_callback[Sentinel.UNSET-args7-xml] PASSED tests/test_options.py::test_default_dual_option_callback[True-args8-xml] PASSED tests/test_options.py::test_default_dual_option_callback[True-args9-js] PASSED tests/test_options.py::test_default_dual_option_callback[js-args10-js] PASSED tests/test_options.py::test_default_dual_option_callback[xml-args11-xml] PASSED tests/test_options.py::test_default_dual_option_callback[jS-args12-jS] PASSED tests/test_options.py::test_default_dual_option_callback[xMl-args13-xMl] PASSED tests/test_options.py::test_default_dual_option_callback[ \u1555( \u141b )\u1557 -args14- \u1555( \u141b )\u1557 ] PASSED tests/test_options.py::test_default_dual_option_callback[None-args15-None] PASSED tests/test_options.py::test_default_dual_option_callback[Sentinel.UNSET-args16-None] PASSED tests/test_options.py::test_default_dual_option_callback[True-args17-js] PASSED tests/test_options.py::test_default_dual_option_callback[False-args18-False] PASSED tests/test_options.py::test_default_dual_option_callback[42-args19-42] PASSED tests/test_options.py::test_default_dual_option_callback[12.3-args20-12.3] PASSED tests/test_options.py::test_envvar_string_flag_value[bar-bar-bar] PASSED tests/test_options.py::test_envvar_string_flag_value[BAR-BAR-BAR] PASSED tests/test_options.py::test_envvar_string_flag_value[ bar - bar - bar ] PASSED tests/test_options.py::test_envvar_string_flag_value[42-42-42] PASSED tests/test_options.py::test_envvar_string_flag_value[None-None-None0] PASSED tests/test_options.py::test_envvar_string_flag_value[True-True-True] PASSED tests/test_options.py::test_envvar_string_flag_value[False-False-False] PASSED tests/test_options.py::test_envvar_string_flag_value[true-true-true] PASSED tests/test_options.py::test_envvar_string_flag_value[false-false-false] PASSED tests/test_options.py::test_envvar_string_flag_value[A B-A B-A B] PASSED tests/test_options.py::test_envvar_string_flag_value[ 1 2 - 1 2 - 1 2 ] PASSED tests/test_options.py::test_envvar_string_flag_value[9.3-9.3-9.3] PASSED tests/test_options.py::test_envvar_string_flag_value[a;n-a;n-a;n] PASSED tests/test_options.py::test_envvar_string_flag_value[x:y-x:y-x:y] PASSED tests/test_options.py::test_envvar_string_flag_value[i/o-i/o-i/o] PASSED tests/test_options.py::test_envvar_string_flag_value[bar--None] PASSED tests/test_options.py::test_envvar_string_flag_value[bar-None-None] PASSED tests/test_options.py::test_envvar_string_flag_value[BAR--None] PASSED tests/test_options.py::test_envvar_string_flag_value[BAR-None-None] PASSED tests/test_options.py::test_envvar_string_flag_value[ bar --None] PASSED tests/test_options.py::test_envvar_string_flag_value[ bar -None-None] PASSED tests/test_options.py::test_envvar_string_flag_value[42--None0] PASSED tests/test_options.py::test_envvar_string_flag_value[42-None-None0] PASSED tests/test_options.py::test_envvar_string_flag_value[42--None1] PASSED tests/test_options.py::test_envvar_string_flag_value[42-None-None1] PASSED tests/test_options.py::test_envvar_string_flag_value[None--None0] PASSED tests/test_options.py::test_envvar_string_flag_value[None-None-None1] PASSED tests/test_options.py::test_envvar_string_flag_value[None--None1] PASSED tests/test_options.py::test_envvar_string_flag_value[None-None-None2] PASSED tests/test_options.py::test_envvar_string_flag_value[True--None0] PASSED tests/test_options.py::test_envvar_string_flag_value[True-None-None0] PASSED tests/test_options.py::test_envvar_string_flag_value[True--None1] PASSED tests/test_options.py::test_envvar_string_flag_value[True-None-None1] PASSED tests/test_options.py::test_envvar_string_flag_value[true--None] PASSED tests/test_options.py::test_envvar_string_flag_value[true-None-None] PASSED tests/test_options.py::test_envvar_string_flag_value[False--None0] PASSED tests/test_options.py::test_envvar_string_flag_value[False-None-None0] PASSED tests/test_options.py::test_envvar_string_flag_value[False--None1] PASSED tests/test_options.py::test_envvar_string_flag_value[False-None-None1] PASSED tests/test_options.py::test_envvar_string_flag_value[false--None] PASSED tests/test_options.py::test_envvar_string_flag_value[false-None-None] PASSED tests/test_options.py::test_envvar_string_flag_value[bar-True-bar] PASSED tests/test_options.py::test_envvar_string_flag_value[bar-true-bar] PASSED tests/test_options.py::test_envvar_string_flag_value[bar-trUe-bar] PASSED tests/test_options.py::test_envvar_string_flag_value[bar- TRUE -bar] PASSED tests/test_options.py::test_envvar_string_flag_value[bar-1-bar] PASSED tests/test_options.py::test_envvar_string_flag_value[bar-yes-bar] PASSED tests/test_options.py::test_envvar_string_flag_value[bar-on-bar] PASSED tests/test_options.py::test_envvar_string_flag_value[bar-t-bar] PASSED tests/test_options.py::test_envvar_string_flag_value[bar-y-bar] PASSED tests/test_options.py::test_envvar_string_flag_value[bar-False-False] PASSED tests/test_options.py::test_envvar_string_flag_value[bar-false-False] PASSED tests/test_options.py::test_envvar_string_flag_value[bar-faLse-False] PASSED tests/test_options.py::test_envvar_string_flag_value[bar- FALSE -False] PASSED tests/test_options.py::test_envvar_string_flag_value[bar-0-False] PASSED tests/test_options.py::test_envvar_string_flag_value[bar-no-False] PASSED tests/test_options.py::test_envvar_string_flag_value[bar-off-False] PASSED tests/test_options.py::test_envvar_string_flag_value[bar-f-False] PASSED tests/test_options.py::test_envvar_string_flag_value[bar-n-False] PASSED tests/test_options.py::test_envvar_string_flag_value[bar- bar -None] PASSED tests/test_options.py::test_envvar_string_flag_value[bar-BAR-None] PASSED tests/test_options.py::test_envvar_string_flag_value[bar-random-None] PASSED tests/test_options.py::test_envvar_string_flag_value[bar-bar random-None] PASSED tests/test_options.py::test_envvar_string_flag_value[bar-random bar-None] PASSED tests/test_options.py::test_envvar_string_flag_value[BAR-bar-None] PASSED tests/test_options.py::test_envvar_string_flag_value[ bar -bar-None] PASSED tests/test_options.py::test_envvar_string_flag_value[ bar -BAR-None] PASSED tests/test_options.py::test_envvar_string_flag_value[42-42-None] PASSED tests/test_options.py::test_envvar_string_flag_value[42-foo-None] PASSED tests/test_options.py::test_envvar_string_flag_value[None-foo-None0] PASSED tests/test_options.py::test_envvar_string_flag_value[None-foo-None1] PASSED tests/test_options.py::test_flag_auto_detection[-a-opt_params0-False-False] PASSED tests/test_options.py::test_flag_auto_detection[-a-opt_params1-False-False] PASSED tests/test_options.py::test_flag_auto_detection[-a-opt_params2-False-False] PASSED tests/test_options.py::test_flag_auto_detection[-a-opt_params3-False-False] PASSED tests/test_options.py::test_flag_auto_detection[-a-opt_params4-True-False] PASSED tests/test_options.py::test_flag_auto_detection[-a-opt_params5-True-True] PASSED tests/test_options.py::test_flag_auto_detection[-a/-A-opt_params6-True-True] PASSED tests/test_options.py::test_flag_auto_detection[-a-opt_params7-True-True] PASSED tests/test_options.py::test_flag_auto_detection[-a-opt_params8-False-False] PASSED tests/test_options.py::test_invalid_flag_combinations[kwargs0-'count' is not valid with 'multiple'.] PASSED tests/test_options.py::test_invalid_flag_combinations[kwargs1-'count' is not valid with 'is_flag'.] PASSED tests/test_options.py::test_non_flag_with_non_negatable_default PASSED tests/test_options.py::test_choice_usage_rendering[choices0-[TEXT]] PASSED tests/test_options.py::test_choice_usage_rendering[choices1-[INTEGER]] PASSED tests/test_options.py::test_choice_usage_rendering[choices2-[FLOAT]] PASSED tests/test_options.py::test_choice_usage_rendering[choices3-[BOOLEAN]] PASSED tests/test_options.py::test_choice_usage_rendering[choices4-[TEXT|INTEGER]] PASSED tests/test_options.py::test_choice_usage_rendering[HashType-[HASHTYPE]] PASSED tests/test_options.py::test_choice_usage_rendering[Number-[NUMBER]] PASSED tests/test_options.py::test_choice_usage_rendering[Letter-[LETTER]] PASSED tests/test_options.py::test_choice_usage_rendering[Color-[COLOR]] PASSED tests/test_options.py::test_choice_usage_rendering[ColorInt-[COLORINT]] PASSED tests/test_options.py::test_choice_default_rendering[choices0-bar-bar] PASSED tests/test_options.py::test_choice_default_rendering[choices1-random-random] PASSED tests/test_options.py::test_choice_default_rendering[choices2-None-None] PASSED tests/test_options.py::test_choice_default_rendering[choices3-0-0] PASSED tests/test_options.py::test_choice_default_rendering[choices4-0.0-0.0] PASSED tests/test_options.py::test_choice_default_rendering[choices5-2-2] PASSED tests/test_options.py::test_choice_default_rendering[choices6-2-2] PASSED tests/test_options.py::test_choice_default_rendering[choices7-2.0-2.0] PASSED tests/test_options.py::test_choice_default_rendering[choices8-True-True] PASSED tests/test_options.py::test_choice_default_rendering[choices9-False-False] PASSED tests/test_options.py::test_choice_default_rendering[choices10-foo-foo] PASSED tests/test_options.py::test_choice_default_rendering[choices11-1-1] PASSED tests/test_options.py::test_choice_default_rendering[HashType-HashType.SHA1-SHA1] PASSED tests/test_options.py::test_choice_default_rendering[HashType-HashType.SHA256-SHA256] PASSED tests/test_options.py::test_choice_default_rendering[HashType-SHA256-SHA256] PASSED tests/test_options.py::test_choice_default_rendering[Number-2-TWO] PASSED tests/test_options.py::test_choice_default_rendering[Number-TWO-TWO] PASSED tests/test_options.py::test_choice_default_rendering[Letter-Value-1-NAME_1] PASSED tests/test_options.py::test_choice_default_rendering[Letter-Value_2-NAME_2] PASSED tests/test_options.py::test_choice_default_rendering[Letter-42_value-NAME_3] PASSED tests/test_options.py::test_choice_default_rendering[Letter-NAME_1-NAME_1] PASSED tests/test_options.py::test_choice_default_rendering[Letter-NAME_2-NAME_2] PASSED tests/test_options.py::test_choice_default_rendering[Letter-NAME_3-NAME_3] PASSED tests/test_options.py::test_choice_default_rendering[Color-Color.GREEN-GREEN] PASSED tests/test_options.py::test_choice_default_rendering[Color-GREEN-GREEN] PASSED tests/test_options.py::test_choice_default_rendering[ColorInt-2-GREEN] PASSED tests/test_options.py::test_choice_default_rendering[ColorInt-GREEN-GREEN] PASSED tests/test_options.py::test_duplicate_names_warning[opts_one0-opts_two0] PASSED tests/test_options.py::test_duplicate_names_warning[opts_one1-opts_two1] PASSED tests/test_options.py::test_dual_options_custom_type_sentinel_flag_value[args0-None-sentinel0] PASSED tests/test_options.py::test_dual_options_custom_type_sentinel_flag_value[args0-None-EnumSentinel.FALSY_SENTINEL] PASSED tests/test_options.py::test_dual_options_custom_type_sentinel_flag_value[args1-Error:\\ Option\\ '\\-\\-config'\\ requires\\ an\\ argument\\.\\\n-sentinel0] PASSED tests/test_options.py::test_dual_options_custom_type_sentinel_flag_value[args1-Error:\\ Option\\ '\\-\\-config'\\ requires\\ an\\ argument\\.\\\n-EnumSentinel.FALSY_SENTINEL] PASSED tests/test_options.py::test_dual_options_custom_type_sentinel_flag_value[args2-Error:\\ Option\\ '\\-\\-config'\\ requires\\ an\\ argument\\.\\\n-sentinel0] PASSED tests/test_options.py::test_dual_options_custom_type_sentinel_flag_value[args2-Error:\\ Option\\ '\\-\\-config'\\ requires\\ an\\ argument\\.\\\n-EnumSentinel.FALSY_SENTINEL] PASSED tests/test_options.py::test_dual_options_custom_type_sentinel_flag_value[args3-No configuration file provided.-sentinel0] PASSED tests/test_options.py::test_dual_options_custom_type_sentinel_flag_value[args3-No configuration file provided.-EnumSentinel.FALSY_SENTINEL] PASSED tests/test_options.py::test_dual_options_custom_type_sentinel_flag_value[args4-foo.conf-sentinel0] PASSED tests/test_options.py::test_dual_options_custom_type_sentinel_flag_value[args4-foo.conf-EnumSentinel.FALSY_SENTINEL] PASSED tests/test_options.py::test_dual_options_custom_type_sentinel_flag_value[args5-Usage: main \\[OPTIONS\\]\\nTry 'main --help' for help.\\n\\nError: Got unexpected extra argument (.+)\\n-sentinel0] PASSED tests/test_options.py::test_dual_options_custom_type_sentinel_flag_value[args5-Usage: main \\[OPTIONS\\]\\nTry 'main --help' for help.\\n\\nError: Got unexpected extra argument (.+)\\n-EnumSentinel.FALSY_SENTINEL] PASSED tests/test_options.py::test_dual_options_custom_type_sentinel_flag_value[args6-Usage: main \\[OPTIONS\\]\\nTry 'main --help' for help.\\n\\nError: Invalid value for '-c' / '--config': File 'random-file.conf' does not exist.\\n-sentinel0] PASSED tests/test_options.py::test_dual_options_custom_type_sentinel_flag_value[args6-Usage: main \\[OPTIONS\\]\\nTry 'main --help' for help.\\n\\nError: Invalid value for '-c' / '--config': File 'random-file.conf' does not exist.\\n-EnumSentinel.FALSY_SENTINEL] PASSED tests/test_options.py::test_dual_options_custom_type_sentinel_flag_value[args7-Usage: main \\[OPTIONS\\]\\nTry 'main --help' for help.\\n\\nError: Invalid value for '-c' / '--config': File '--no-config' does not exist.\\n-sentinel0] PASSED tests/test_options.py::test_dual_options_custom_type_sentinel_flag_value[args7-Usage: main \\[OPTIONS\\]\\nTry 'main --help' for help.\\n\\nError: Invalid value for '-c' / '--config': File '--no-config' does not exist.\\n-EnumSentinel.FALSY_SENTINEL] PASSED tests/test_options.py::test_dual_options_custom_type_sentinel_flag_value[args8-Usage: main \\[OPTIONS\\]\\nTry 'main --help' for help.\\n\\nError: Invalid value for '-c' / '--config': File '--no-config' does not exist.\\n-sentinel0] PASSED tests/test_options.py::test_dual_options_custom_type_sentinel_flag_value[args8-Usage: main \\[OPTIONS\\]\\nTry 'main --help' for help.\\n\\nError: Invalid value for '-c' / '--config': File '--no-config' does not exist.\\n-EnumSentinel.FALSY_SENTINEL] PASSED tests/test_options.py::test_dual_options_custom_type_sentinel_flag_value[args9-foo.conf-sentinel0] PASSED tests/test_options.py::test_dual_options_custom_type_sentinel_flag_value[args9-foo.conf-EnumSentinel.FALSY_SENTINEL] PASSED tests/test_options.py::test_custom_type_flag_value_standalone_option[opt_params0-args0-None] PASSED tests/test_options.py::test_custom_type_flag_value_standalone_option[opt_params1-args1-None] PASSED tests/test_options.py::test_custom_type_flag_value_standalone_option[opt_params2-args2-EngineType.OSS] PASSED tests/test_options.py::test_custom_type_flag_value_standalone_option[opt_params3-args3-EngineType.OSS] PASSED tests/test_options.py::test_custom_type_flag_value_standalone_option[opt_params4-args4-EngineType.OSS] PASSED tests/test_options.py::test_custom_type_flag_value_standalone_option[opt_params5-args5-None] PASSED tests/test_options.py::test_custom_type_flag_value_standalone_option[opt_params6-args6-None] PASSED tests/test_options.py::test_custom_type_flag_value_standalone_option[opt_params7-args7-None] PASSED tests/test_options.py::test_custom_type_flag_value_standalone_option[opt_params8-args8-None] PASSED tests/test_options.py::test_custom_type_flag_value_standalone_option[opt_params9-args9-EngineType.OSS] PASSED tests/test_options.py::test_custom_type_flag_value_standalone_option[opt_params10-args10-Error:\\ Option\\ '\\-\\-pro'\\ requires\\ an\\ argument\\.\\\n] PASSED tests/test_options.py::test_custom_type_flag_value_standalone_option[opt_params11-args11-EngineType.OSS] PASSED tests/test_options.py::test_custom_type_flag_value_standalone_option[opt_params12-args12-EngineType.OSS] PASSED tests/test_options.py::test_custom_type_flag_value_standalone_option[opt_params13-args13-EngineType.OSS] PASSED tests/test_options.py::test_custom_type_flag_value_standalone_option[opt_params14-args14-1] PASSED tests/test_options.py::test_custom_type_flag_value_standalone_option[opt_params15-args15-42] PASSED tests/test_options.py::test_custom_type_flag_value_standalone_option[opt_params16-args16-EngineType.OSS] PASSED tests/test_options.py::test_custom_type_flag_value_standalone_option[opt_params17-args17-42] PASSED tests/test_options.py::test_custom_type_flag_value_standalone_option[opt_params18-args18-1] PASSED tests/test_options.py::test_custom_type_flag_value_standalone_option[opt_params19-args19-42] PASSED tests/test_options.py::test_custom_type_flag_value_standalone_option[opt_params20-args20-1] PASSED tests/test_options.py::test_custom_type_flag_value_standalone_option[opt_params21-args21-42] PASSED tests/test_options.py::test_custom_type_flag_value_standalone_option[opt_params22-args22-EngineType.OSS] PASSED tests/test_options.py::test_custom_type_flag_value_standalone_option[opt_params23-args23-42] PASSED tests/test_options.py::test_custom_type_flag_value_standalone_option[opt_params24-args24-1] PASSED tests/test_options.py::test_custom_type_flag_value_standalone_option[opt_params25-args25-42] PASSED tests/test_options.py::test_custom_type_flag_value_standalone_option[opt_params26-args26-1] PASSED tests/test_options.py::test_custom_type_flag_value_standalone_option[opt_params27-args27-42] PASSED tests/test_options.py::test_custom_type_flag_value_standalone_option[opt_params28-args28-1] PASSED tests/test_options.py::test_custom_type_flag_value_standalone_option[opt_params29-args29-42] PASSED tests/test_options.py::test_custom_type_flag_value_dual_options[opt1_params0-opt2_params0-args0-None] PASSED tests/test_options.py::test_custom_type_flag_value_dual_options[opt1_params1-opt2_params1-args1-EngineType.OSS] PASSED tests/test_options.py::test_custom_type_flag_value_dual_options[opt1_params2-opt2_params2-args2-EngineType.PRO] PASSED tests/test_options.py::test_custom_type_flag_value_dual_options[opt1_params3-opt2_params3-args3-''] PASSED tests/test_options.py::test_custom_type_flag_value_dual_options[opt1_params4-opt2_params4-args4-] PASSED tests/test_options.py::test_custom_type_flag_value_dual_options[opt1_params5-opt2_params5-args5-] PASSED tests/test_options.py::test_custom_type_flag_value_dual_options[opt1_params6-opt2_params6-args6-True] PASSED tests/test_options.py::test_custom_type_flag_value_dual_options[opt1_params7-opt2_params7-args7-None] PASSED tests/test_options.py::test_custom_type_flag_value_dual_options[opt1_params8-opt2_params8-args8-] PASSED tests/test_options.py::test_custom_type_flag_value_dual_options[opt1_params9-opt2_params9-args9-Class1] PASSED tests/test_options.py::test_custom_type_flag_value_dual_options[opt1_params10-opt2_params10-args10-Class2] PASSED tests/test_options.py::test_custom_type_flag_value_dual_options[opt1_params11-opt2_params11-args11-''] PASSED tests/test_options.py::test_custom_type_flag_value_dual_options[opt1_params12-opt2_params12-args12-''] PASSED tests/test_options.py::test_custom_type_flag_value_dual_options[opt1_params13-opt2_params13-args13-] PASSED tests/test_options.py::test_custom_type_flag_value_dual_options[opt1_params14-opt2_params14-args14-] PASSED tests/test_options.py::test_custom_type_flag_value_dual_options[opt1_params15-opt2_params15-args15-1] PASSED tests/test_options.py::test_custom_type_flag_value_dual_options[opt1_params16-opt2_params16-args16-1] PASSED tests/test_options.py::test_custom_type_frozenset_flag_value PASSED tests/test_parser.py::test_split_arg_string[cli a b c-expect0] PASSED tests/test_parser.py::test_split_arg_string[cli 'my file-expect1] PASSED tests/test_parser.py::test_split_arg_string[cli 'my file'-expect2] PASSED tests/test_parser.py::test_split_arg_string[cli my\\-expect3] PASSED tests/test_parser.py::test_split_arg_string[cli my\\ file-expect4] PASSED tests/test_parser.py::test_parser_default_prefixes PASSED tests/test_parser.py::test_parser_collects_prefixes PASSED tests/test_shell_completion.py::test_command PASSED tests/test_shell_completion.py::test_group PASSED tests/test_shell_completion.py::test_nested_group[args0--expect0] PASSED tests/test_shell_completion.py::test_nested_group[args1--expect1] PASSED tests/test_shell_completion.py::test_nested_group[args2--expect2] PASSED tests/test_shell_completion.py::test_nested_group[args3---expect3] PASSED tests/test_shell_completion.py::test_nested_group[args4--expect4] PASSED tests/test_shell_completion.py::test_nested_group[args5---expect5] PASSED tests/test_shell_completion.py::test_group_command_same_option PASSED tests/test_shell_completion.py::test_chained PASSED tests/test_shell_completion.py::test_help_option PASSED tests/test_shell_completion.py::test_argument_order PASSED tests/test_shell_completion.py::test_argument_default PASSED tests/test_shell_completion.py::test_type_choice PASSED tests/test_shell_completion.py::test_choice_special_characters PASSED tests/test_shell_completion.py::test_choice_conflicting_prefix PASSED tests/test_shell_completion.py::test_option_count PASSED tests/test_shell_completion.py::test_option_optional PASSED tests/test_shell_completion.py::test_path_types[type0-file] PASSED tests/test_shell_completion.py::test_path_types[type1-file] PASSED tests/test_shell_completion.py::test_path_types[type2-dir] PASSED tests/test_shell_completion.py::test_absolute_path PASSED tests/test_shell_completion.py::test_option_flag PASSED tests/test_shell_completion.py::test_flag_option_with_nargs_option PASSED tests/test_shell_completion.py::test_option_custom PASSED tests/test_shell_completion.py::test_option_multiple PASSED tests/test_shell_completion.py::test_option_nargs PASSED tests/test_shell_completion.py::test_argument_nargs PASSED tests/test_shell_completion.py::test_double_dash PASSED tests/test_shell_completion.py::test_hidden PASSED tests/test_shell_completion.py::test_add_different_name PASSED tests/test_shell_completion.py::test_completion_item_data PASSED tests/test_shell_completion.py::test_full_source[bash] PASSED tests/test_shell_completion.py::test_full_source[zsh] PASSED tests/test_shell_completion.py::test_full_source[fish] PASSED tests/test_shell_completion.py::test_full_complete[bash-env0-plain,a\nplain,b\n] PASSED tests/test_shell_completion.py::test_full_complete[bash-env1-plain,b\n] PASSED tests/test_shell_completion.py::test_full_complete[zsh-env2-plain\na\n_\nplain\nb\nbee\n] PASSED tests/test_shell_completion.py::test_full_complete[zsh-env3-plain\nb\nbee\n] PASSED tests/test_shell_completion.py::test_full_complete[fish-env4-plain,a\nplain,b\tbee\n] PASSED tests/test_shell_completion.py::test_full_complete[fish-env5-plain,b\tbee\n] PASSED tests/test_shell_completion.py::test_full_complete[fish-env6-plain,b\tbee\n] PASSED tests/test_shell_completion.py::test_zsh_full_complete_with_colons[env0-plain\na\n_\nplain\nb\nbee\nplain\nc\\:d\ncee:dee\nplain\nc:e\n_\n] PASSED tests/test_shell_completion.py::test_zsh_full_complete_with_colons[env1-plain\nc\\:d\ncee:dee\nplain\nc:e\n_\n] PASSED tests/test_shell_completion.py::test_zsh_full_complete_with_colons[env2-plain\nc\\:d\ncee:dee\nplain\nc:e\n_\n] PASSED tests/test_shell_completion.py::test_context_settings PASSED tests/test_shell_completion.py::test_choice_case_sensitive[False-expect0] PASSED tests/test_shell_completion.py::test_choice_case_sensitive[True-expect1] PASSED tests/test_shell_completion.py::test_add_completion_class PASSED tests/test_shell_completion.py::test_add_completion_class_with_name PASSED tests/test_shell_completion.py::test_add_completion_class_decorator PASSED tests/test_shell_completion.py::test_files_closed PASSED tests/test_termui.py::test_progressbar_strip_regression PASSED tests/test_termui.py::test_progressbar_length_hint PASSED tests/test_termui.py::test_progressbar_no_tty PASSED tests/test_termui.py::test_progressbar_hidden_manual PASSED tests/test_termui.py::test_progressbar_time_per_iteration[avg0-0.0] PASSED tests/test_termui.py::test_progressbar_time_per_iteration[avg1-2.5] PASSED tests/test_termui.py::test_progressbar_eta[False-5] PASSED tests/test_termui.py::test_progressbar_eta[True-0] PASSED tests/test_termui.py::test_progressbar_format_eta[0-00:00:00] PASSED tests/test_termui.py::test_progressbar_format_eta[30-00:00:30] PASSED tests/test_termui.py::test_progressbar_format_eta[90-00:01:30] PASSED tests/test_termui.py::test_progressbar_format_eta[900-00:15:00] PASSED tests/test_termui.py::test_progressbar_format_eta[9000-02:30:00] PASSED tests/test_termui.py::test_progressbar_format_eta[99999999999-1157407d 09:46:39] PASSED tests/test_termui.py::test_progressbar_format_eta[None-] PASSED tests/test_termui.py::test_progressbar_format_pos[0-5] PASSED tests/test_termui.py::test_progressbar_format_pos[-1-1] PASSED tests/test_termui.py::test_progressbar_format_pos[5-5] PASSED tests/test_termui.py::test_progressbar_format_pos[6-5] PASSED tests/test_termui.py::test_progressbar_format_pos[4-0] PASSED tests/test_termui.py::test_progressbar_format_bar[8-False-7-0-#######-] PASSED tests/test_termui.py::test_progressbar_format_bar[0-True-8-0-########] PASSED tests/test_termui.py::test_progressbar_format_progress_line[0-True-True-0- [--------] 0/0 0%] PASSED tests/test_termui.py::test_progressbar_format_progress_line[0-False-True-0- [--------] 0/0] PASSED tests/test_termui.py::test_progressbar_format_progress_line[0-False-False-0- [--------]0] PASSED tests/test_termui.py::test_progressbar_format_progress_line[0-False-False-0- [--------]1] PASSED tests/test_termui.py::test_progressbar_format_progress_line[8-True-True-8- [########] 8/8 100%] PASSED tests/test_termui.py::test_progressbar_format_progress_line_with_show_func[test] PASSED tests/test_termui.py::test_progressbar_format_progress_line_with_show_func[None] PASSED tests/test_termui.py::test_progressbar_init_exceptions PASSED tests/test_termui.py::test_progressbar_iter_outside_with_exceptions PASSED tests/test_termui.py::test_progressbar_is_iterator PASSED tests/test_termui.py::test_choices_list_in_prompt PASSED tests/test_termui.py::test_file_prompt_default_format[file_kwargs0] PASSED tests/test_termui.py::test_file_prompt_default_format[file_kwargs1] PASSED tests/test_termui.py::test_file_prompt_default_format[file_kwargs2] PASSED tests/test_termui.py::test_secho PASSED tests/test_termui.py::test_secho_non_text[123-\x1b[45m123\x1b[0m] PASSED tests/test_termui.py::test_secho_non_text[test-test] PASSED tests/test_termui.py::test_progressbar_yields_all_items PASSED tests/test_termui.py::test_progressbar_update PASSED tests/test_termui.py::test_progressbar_item_show_func PASSED tests/test_termui.py::test_progressbar_update_with_item_show_func PASSED tests/test_termui.py::test_progress_bar_update_min_steps PASSED tests/test_termui.py::test_getchar_windows[True-h] SKIPPED (Tests user- input using the msvcrt module.) tests/test_termui.py::test_getchar_windows[True-H] SKIPPED (Tests user- input using the msvcrt module.) tests/test_termui.py::test_getchar_windows[True-\xe9] SKIPPED (Tests user-input using the msvcrt module.) tests/test_termui.py::test_getchar_windows[True-\xc0] SKIPPED (Tests user-input using the msvcrt module.) tests/test_termui.py::test_getchar_windows[True- ] SKIPPED (Tests user- input using the msvcrt module.) tests/test_termui.py::test_getchar_windows[True-\u5b57] SKIPPED (Tests user-input using the msvcrt module.) tests/test_termui.py::test_getchar_windows[True-\xe0H] SKIPPED (Tests user-input using the msvcrt module.) tests/test_termui.py::test_getchar_windows[True-\xe0R] SKIPPED (Tests user-input using the msvcrt module.) tests/test_termui.py::test_getchar_windows[False-h] SKIPPED (Tests user- input using the msvcrt module.) tests/test_termui.py::test_getchar_windows[False-H] SKIPPED (Tests user- input using the msvcrt module.) tests/test_termui.py::test_getchar_windows[False-\xe9] SKIPPED (Tests user-input using the msvcrt module.) tests/test_termui.py::test_getchar_windows[False-\xc0] SKIPPED (Tests user-input using the msvcrt module.) tests/test_termui.py::test_getchar_windows[False- ] SKIPPED (Tests user- input using the msvcrt module.) tests/test_termui.py::test_getchar_windows[False-\u5b57] SKIPPED (Tests user-input using the msvcrt module.) tests/test_termui.py::test_getchar_windows[False-\xe0H] SKIPPED (Tests user-input using the msvcrt module.) tests/test_termui.py::test_getchar_windows[False-\xe0R] SKIPPED (Tests user-input using the msvcrt module.) tests/test_termui.py::test_getchar_special_key_windows[\x00-a] SKIPPED tests/test_termui.py::test_getchar_special_key_windows[\x00-b] SKIPPED tests/test_termui.py::test_getchar_special_key_windows[\xe0-c] SKIPPED tests/test_termui.py::test_getchar_windows_exceptions[\x03-KeyboardInterrupt] SKIPPED tests/test_termui.py::test_getchar_windows_exceptions[\x1a-EOFError] SKIPPED tests/test_termui.py::test_fast_edit PASSED tests/test_termui.py::test_edit PASSED tests/test_termui.py::test_prompt_required_with_required[True-False-None-prompt] PASSED tests/test_termui.py::test_prompt_required_with_required[True-False-args1-Option '-v' requires an argument.] PASSED tests/test_termui.py::test_prompt_required_with_required[False-True-None-prompt] PASSED tests/test_termui.py::test_prompt_required_with_required[False-True-args3-prompt] PASSED tests/test_termui.py::test_prompt_required_false[no flag] PASSED tests/test_termui.py::test_prompt_required_false[short sep value] PASSED tests/test_termui.py::test_prompt_required_false[long sep value] PASSED tests/test_termui.py::test_prompt_required_false[short join value] PASSED tests/test_termui.py::test_prompt_required_false[long join value] PASSED tests/test_termui.py::test_prompt_required_false[short no value] PASSED tests/test_termui.py::test_prompt_required_false[long no value] PASSED tests/test_termui.py::test_prompt_required_false[no value opt] PASSED tests/test_termui.py::test_confirmation_prompt[True-password\npassword-None-password] PASSED tests/test_termui.py::test_confirmation_prompt[Confirm Password-password\npassword\n-None-password] PASSED tests/test_termui.py::test_confirmation_prompt[True-\n\n--] PASSED tests/test_termui.py::test_confirmation_prompt[False-None-None-None] PASSED tests/test_termui.py::test_false_show_default_cause_no_default_display_in_prompt PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params0-args0-[y/N]-y-True] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params1-args1-[y/N]-n-False] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params2-args2-[y/N]--False] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params3-args3-[Y/n]--True] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params4-args4-[Y/n]-y-True] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params5-args5-[Y/n]-n-False] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params6-args6-[y/N]--False] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params7-args7-[y/N]-y-True] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params8-args8-[y/N]-n-False] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params9-args9-[y/n]-y-True] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params10-args10-[y/n]-n-False] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params11-args11-[Y/n]--True] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params12-args12-[Y/n]-y-True] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params13-args13-[Y/n]-n-False] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params14-args14-None-None-MissingParameter] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params15-args15-None-None-True] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params16-args16-None-None-False] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params17-args17-None-None-None] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params18-args18-None-None-True] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params19-args19-None-None-False] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params20-args20-None-None-BadParameter] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params21-args21-None-None-True] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params22-args22-None-None-False] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params23-args23-None-None-True] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params24-args24-None-None-False] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params25-args25-None-None-True] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params26-args26-None-None-False] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params27-args27-None-None-True] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params28-args28-None-None-False] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params29-args29-None-None-True] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params30-args30-None-None-False] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params31-args31-None-None-True] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params32-args32-None-None-False] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params33-args33-None-None-True] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params34-args34-None-None-False] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params35-args35-None-None-True] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params36-args36-None-None-False] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params37-args37-None-None-True] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params38-args38-None-None-False] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params39-args39-None-None-True] PASSED tests/test_termui.py::test_flag_value_prompt[--flag/--no-flag-opt_params40-args40-None-None-False] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params41-args41---expected41] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params42-args42--y-y] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params43-args43--n-n] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params44-args44--foo-foo] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params45-args45-[y/N]--False] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params46-args46-[y/N]-y-True] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params47-args47-[y/N]-n-False] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params48-args48-[y/N]--False] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params49-args49-[y/N]-y-True] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params50-args50-[y/N]-n-False] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params51-args51---expected51] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params52-args52--y-y] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params53-args53--n-n] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params54-args54---expected54] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params55-args55--y-y] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params56-args56--n-n] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params57-args57-[Y/n]--True] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params58-args58-[Y/n]-y-True] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params59-args59-[Y/n]-n-False] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params60-args60-[y/N]--False] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params61-args61-[y/N]-y-True] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params62-args62-[y/N]-n-False] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params63-args63-[y/N]--False] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params64-args64-[y/N]-y-True] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params65-args65-[y/N]-n-False] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params66-args66-[y/N]--False] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params67-args67-[y/N]-y-True] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params68-args68-[y/N]-n-False] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params69-args69-[y/n]--expected69] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params70-args70-[y/n]-y-True] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params71-args71-[y/n]-n-False] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params72-args72-[y/n]--expected72] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params73-args73-[y/n]-y-True] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params74-args74-[y/n]-n-False] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params75-args75---expected75] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params76-args76--y-y] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params77-args77--n-n] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params78-args78-[False]--False] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params79-args79-[False]-y-y] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params80-args80-[False]-n-n] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params81-args81---expected81] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params82-args82--y-y] PASSED tests/test_termui.py::test_flag_value_prompt[--flag-opt_params83-args83--n-n] PASSED tests/test_testing.py::test_runner PASSED tests/test_testing.py::test_echo_stdin_stream PASSED tests/test_testing.py::test_echo_stdin_prompts PASSED tests/test_testing.py::test_runner_with_stream PASSED tests/test_testing.py::test_prompts PASSED tests/test_testing.py::test_getchar PASSED tests/test_testing.py::test_catch_exceptions PASSED tests/test_testing.py::test_catch_exceptions_cli_runner PASSED tests/test_testing.py::test_with_color PASSED tests/test_testing.py::test_with_color_errors PASSED tests/test_testing.py::test_with_color_but_pause_not_blocking PASSED tests/test_testing.py::test_exit_code_and_output_from_sys_exit PASSED tests/test_testing.py::test_env PASSED tests/test_testing.py::test_stderr PASSED tests/test_testing.py::test_args[None-bar\n] PASSED tests/test_testing.py::test_args[args1-bar\n] PASSED tests/test_testing.py::test_args[-bar\n] PASSED tests/test_testing.py::test_args[args3-one two\n] PASSED tests/test_testing.py::test_args[--foo "one two"-one two\n] PASSED tests/test_testing.py::test_setting_prog_name_in_extra PASSED tests/test_testing.py::test_command_standalone_mode_returns_value PASSED tests/test_testing.py::test_file_stdin_attrs PASSED tests/test_testing.py::test_isolated_runner PASSED tests/test_testing.py::test_isolated_runner_custom_tempdir PASSED tests/test_testing.py::test_isolation_stderr_errors PASSED tests/test_testing.py::test_isolation_flushes_unflushed_stderr PASSED tests/test_types.py::test_range[type0-3-3] PASSED tests/test_types.py::test_range[type1-5-5] PASSED tests/test_types.py::test_range[type2-100-100] PASSED tests/test_types.py::test_range[type3-5-5] PASSED tests/test_types.py::test_range[type4--100--100] PASSED tests/test_types.py::test_range[type5--1-0] PASSED tests/test_types.py::test_range[type6-6-5] PASSED tests/test_types.py::test_range[type7-0-1] PASSED tests/test_types.py::test_range[type8-5-4] PASSED tests/test_types.py::test_range[type9-1.2-1.2] PASSED tests/test_types.py::test_range[type10-0.51-0.51] PASSED tests/test_types.py::test_range[type11-1.49-1.49] PASSED tests/test_types.py::test_range[type12--0.0-0.5] PASSED tests/test_types.py::test_range[type13-inf-1.5] PASSED tests/test_types.py::test_range_fail[type0-6-6 is not in the range 0<=x<=5.] PASSED tests/test_types.py::test_range_fail[type1-4-4 is not in the range x>=5.] PASSED tests/test_types.py::test_range_fail[type2-6-6 is not in the range x<=5.] PASSED tests/test_types.py::test_range_fail[type3-0-00.5] PASSED tests/test_types.py::test_range_fail[type6-1.5-x<1.5] PASSED tests/test_types.py::test_float_range_no_clamp_open PASSED tests/test_types.py::test_cast_multi_default[2-False-None-None] PASSED tests/test_types.py::test_cast_multi_default[2-False-default1-expect1] PASSED tests/test_types.py::test_cast_multi_default[None-True-None-expect2] PASSED tests/test_types.py::test_cast_multi_default[None-True-default3-expect3] PASSED tests/test_types.py::test_cast_multi_default[2-True-None-expect4] PASSED tests/test_types.py::test_cast_multi_default[2-True-default5-expect5] PASSED tests/test_types.py::test_cast_multi_default[-1-None-None-expect6] PASSED tests/test_types.py::test_path_type[None-a/b/c.txt] PASSED tests/test_types.py::test_path_type[str-a/b/c.txt] PASSED tests/test_types.py::test_path_type[bytes-a/b/c.txt] PASSED tests/test_types.py::test_path_type[Path-expect3] PASSED tests/test_types.py::test_path_resolve_symlink PASSED tests/test_types.py::test_path_surrogates PASSED tests/test_types.py::test_file_surrogates[type0] PASSED tests/test_types.py::test_file_surrogates[type1] PASSED tests/test_types.py::test_file_error_surrogates PASSED tests/test_types.py::test_invalid_path_with_esc_sequence PASSED tests/test_types.py::test_choice_get_invalid_choice_message PASSED tests/test_utils.py::test_unset_sentinel PASSED tests/test_utils.py::test_echo PASSED tests/test_utils.py::test_echo_custom_file PASSED tests/test_utils.py::test_echo_no_streams PASSED tests/test_utils.py::test_styling[styles0-\x1b[30mx y\x1b[0m] PASSED tests/test_utils.py::test_styling[styles1-\x1b[31mx y\x1b[0m] PASSED tests/test_utils.py::test_styling[styles2-\x1b[32mx y\x1b[0m] PASSED tests/test_utils.py::test_styling[styles3-\x1b[33mx y\x1b[0m] PASSED tests/test_utils.py::test_styling[styles4-\x1b[34mx y\x1b[0m] PASSED tests/test_utils.py::test_styling[styles5-\x1b[35mx y\x1b[0m] PASSED tests/test_utils.py::test_styling[styles6-\x1b[36mx y\x1b[0m] PASSED tests/test_utils.py::test_styling[styles7-\x1b[37mx y\x1b[0m] PASSED tests/test_utils.py::test_styling[styles8-\x1b[40mx y\x1b[0m] PASSED tests/test_utils.py::test_styling[styles9-\x1b[41mx y\x1b[0m] PASSED tests/test_utils.py::test_styling[styles10-\x1b[42mx y\x1b[0m] PASSED tests/test_utils.py::test_styling[styles11-\x1b[43mx y\x1b[0m] PASSED tests/test_utils.py::test_styling[styles12-\x1b[44mx y\x1b[0m] PASSED tests/test_utils.py::test_styling[styles13-\x1b[45mx y\x1b[0m] PASSED tests/test_utils.py::test_styling[styles14-\x1b[46mx y\x1b[0m] PASSED tests/test_utils.py::test_styling[styles15-\x1b[47mx y\x1b[0m] PASSED tests/test_utils.py::test_styling[styles16-\x1b[48;5;91mx y\x1b[0m] PASSED tests/test_utils.py::test_styling[styles17-\x1b[48;2;135;0;175mx y\x1b[0m] PASSED tests/test_utils.py::test_styling[styles18-\x1b[1mx y\x1b[0m] PASSED tests/test_utils.py::test_styling[styles19-\x1b[2mx y\x1b[0m] PASSED tests/test_utils.py::test_styling[styles20-\x1b[4mx y\x1b[0m] PASSED tests/test_utils.py::test_styling[styles21-\x1b[53mx y\x1b[0m] PASSED tests/test_utils.py::test_styling[styles22-\x1b[3mx y\x1b[0m] PASSED tests/test_utils.py::test_styling[styles23-\x1b[5mx y\x1b[0m] PASSED tests/test_utils.py::test_styling[styles24-\x1b[7mx y\x1b[0m] PASSED tests/test_utils.py::test_styling[styles25-\x1b[9mx y\x1b[0m] PASSED tests/test_utils.py::test_styling[styles26-\x1b[22mx y\x1b[0m] PASSED tests/test_utils.py::test_styling[styles27-\x1b[22mx y\x1b[0m] PASSED tests/test_utils.py::test_styling[styles28-\x1b[24mx y\x1b[0m] PASSED tests/test_utils.py::test_styling[styles29-\x1b[55mx y\x1b[0m] PASSED tests/test_utils.py::test_styling[styles30-\x1b[23mx y\x1b[0m] PASSED tests/test_utils.py::test_styling[styles31-\x1b[25mx y\x1b[0m] PASSED tests/test_utils.py::test_styling[styles32-\x1b[27mx y\x1b[0m] PASSED tests/test_utils.py::test_styling[styles33-\x1b[29mx y\x1b[0m] PASSED tests/test_utils.py::test_styling[styles34-\x1b[30mx y] PASSED tests/test_utils.py::test_unstyle_other_ansi[\x1b[?25lx y\x1b[?25h-x y] PASSED tests/test_utils.py::test_filename_formatting PASSED tests/test_utils.py::test_prompts PASSED tests/test_utils.py::test_confirm_repeat PASSED tests/test_utils.py::test_prompts_abort PASSED tests/test_utils.py::test_prompts_eof PASSED tests/test_utils.py::test_echo_via_pager[test0-cat] PASSED tests/test_utils.py::test_echo_via_pager[test0-cat ] PASSED tests/test_utils.py::test_echo_via_pager[test0- cat ] PASSED tests/test_utils.py::test_echo_via_pager[test0-less] PASSED tests/test_utils.py::test_echo_via_pager[test0- less] PASSED tests/test_utils.py::test_echo_via_pager[test0- less ] PASSED tests/test_utils.py::test_echo_via_pager[test1-cat] PASSED tests/test_utils.py::test_echo_via_pager[test1-cat ] PASSED tests/test_utils.py::test_echo_via_pager[test1- cat ] PASSED tests/test_utils.py::test_echo_via_pager[test1-less] PASSED tests/test_utils.py::test_echo_via_pager[test1- less] PASSED tests/test_utils.py::test_echo_via_pager[test1- less ] PASSED tests/test_utils.py::test_echo_via_pager[test2-cat] PASSED tests/test_utils.py::test_echo_via_pager[test2-cat ] PASSED tests/test_utils.py::test_echo_via_pager[test2- cat ] PASSED tests/test_utils.py::test_echo_via_pager[test2-less] PASSED tests/test_utils.py::test_echo_via_pager[test2- less] PASSED tests/test_utils.py::test_echo_via_pager[test2- less ] PASSED tests/test_utils.py::test_echo_via_pager[test3-cat] PASSED tests/test_utils.py::test_echo_via_pager[test3-cat ] PASSED tests/test_utils.py::test_echo_via_pager[test3- cat ] PASSED tests/test_utils.py::test_echo_via_pager[test3-less] PASSED tests/test_utils.py::test_echo_via_pager[test3- less] PASSED tests/test_utils.py::test_echo_via_pager[test3- less ] PASSED tests/test_utils.py::test_echo_via_pager[test4-cat] PASSED tests/test_utils.py::test_echo_via_pager[test4-cat ] PASSED tests/test_utils.py::test_echo_via_pager[test4- cat ] PASSED tests/test_utils.py::test_echo_via_pager[test4-less] PASSED tests/test_utils.py::test_echo_via_pager[test4- less] PASSED tests/test_utils.py::test_echo_via_pager[test4- less ] PASSED tests/test_utils.py::test_echo_via_pager[test5-cat] PASSED tests/test_utils.py::test_echo_via_pager[test5-cat ] PASSED tests/test_utils.py::test_echo_via_pager[test5- cat ] PASSED tests/test_utils.py::test_echo_via_pager[test5-less] PASSED tests/test_utils.py::test_echo_via_pager[test5- less] PASSED tests/test_utils.py::test_echo_via_pager[test5- less ] PASSED tests/test_utils.py::test_echo_via_pager[test6-cat] PASSED tests/test_utils.py::test_echo_via_pager[test6-cat ] PASSED tests/test_utils.py::test_echo_via_pager[test6- cat ] PASSED tests/test_utils.py::test_echo_via_pager[test6-less] PASSED tests/test_utils.py::test_echo_via_pager[test6- less] PASSED tests/test_utils.py::test_echo_via_pager[test6- less ] PASSED tests/test_utils.py::test_echo_via_pager[test7-cat] PASSED tests/test_utils.py::test_echo_via_pager[test7-cat ] PASSED tests/test_utils.py::test_echo_via_pager[test7- cat ] PASSED tests/test_utils.py::test_echo_via_pager[test7-less] PASSED tests/test_utils.py::test_echo_via_pager[test7- less] PASSED tests/test_utils.py::test_echo_via_pager[test7- less ] PASSED tests/test_utils.py::test_echo_via_pager[test8-cat] PASSED tests/test_utils.py::test_echo_via_pager[test8-cat ] PASSED tests/test_utils.py::test_echo_via_pager[test8- cat ] PASSED tests/test_utils.py::test_echo_via_pager[test8-less] PASSED tests/test_utils.py::test_echo_via_pager[test8- less] PASSED tests/test_utils.py::test_echo_via_pager[test8- less ] PASSED tests/test_utils.py::test_echo_via_pager[test9-cat] PASSED tests/test_utils.py::test_echo_via_pager[test9-cat ] PASSED tests/test_utils.py::test_echo_via_pager[test9- cat ] PASSED tests/test_utils.py::test_echo_via_pager[test9-less] PASSED tests/test_utils.py::test_echo_via_pager[test9- less] PASSED tests/test_utils.py::test_echo_via_pager[test9- less ] PASSED tests/test_utils.py::test_echo_color_flag PASSED tests/test_utils.py::test_prompt_cast_default PASSED tests/test_utils.py::test_echo_writing_to_standard_error PASSED tests/test_utils.py::test_echo_with_capsys PASSED tests/test_utils.py::test_open_file PASSED tests/test_utils.py::test_open_file_pathlib_dash PASSED tests/test_utils.py::test_open_file_ignore_errors_stdin PASSED tests/test_utils.py::test_open_file_respects_ignore PASSED tests/test_utils.py::test_open_file_ignore_invalid_utf8 PASSED tests/test_utils.py::test_open_file_ignore_no_encoding PASSED tests/test_utils.py::test_open_file_atomic_permissions_existing_file[256] PASSED tests/test_utils.py::test_open_file_atomic_permissions_existing_file[292] PASSED tests/test_utils.py::test_open_file_atomic_permissions_existing_file[384] PASSED tests/test_utils.py::test_open_file_atomic_permissions_existing_file[420] PASSED tests/test_utils.py::test_open_file_atomic_permissions_new_file PASSED tests/test_utils.py::test_iter_keepopenfile PASSED tests/test_utils.py::test_iter_lazyfile PASSED tests/test_utils.py::test_detect_program_name[example.py-None-example.py] PASSED tests/test_utils.py::test_detect_program_name[/foo/bar/example.py-None-example.py] PASSED tests/test_utils.py::test_detect_program_name[example-None-example] PASSED tests/test_utils.py::test_detect_program_name[example/__main__.py-example-python -m example] PASSED tests/test_utils.py::test_detect_program_name[example/cli.py-example-python -m example.cli] PASSED tests/test_utils.py::test_detect_program_name[example--example] PASSED tests/test_utils.py::test_expand_args PASSED tests/test_utils.py::test_make_default_short_help[-empty] PASSED tests/test_utils.py::test_make_default_short_help[-equal length, no dot] PASSED tests/test_utils.py::test_make_default_short_help[-sentence < max] PASSED tests/test_utils.py::test_make_default_short_help[-paragraph < max] PASSED tests/test_utils.py::test_make_default_short_help[-truncate] PASSED tests/test_utils.py::test_make_default_short_help[-length includes suffix] PASSED tests/test_utils.py::test_make_default_short_help[-ignore dot in word] PASSED tests/test_utils.py::test_make_default_short_help[no-wrap mark-empty] PASSED tests/test_utils.py::test_make_default_short_help[no-wrap mark-equal length, no dot] PASSED tests/test_utils.py::test_make_default_short_help[no-wrap mark-sentence < max] PASSED tests/test_utils.py::test_make_default_short_help[no-wrap mark-paragraph < max] PASSED tests/test_utils.py::test_make_default_short_help[no-wrap mark-truncate] PASSED tests/test_utils.py::test_make_default_short_help[no-wrap mark-length includes suffix] PASSED tests/test_utils.py::test_make_default_short_help[no-wrap mark-ignore dot in word] PASSED ======== 1314 passed, 21 skipped, 1 xfailed ======== py$(PYV): OK congratulations :)