Package: src:proton-vpn-cli Version: 1.0.1-1 Severity: serious Tags: ftbfs forky sid
Dear maintainer: During a rebuild of all packages in unstable, this package failed to build. Below you will find the last part of the build log (probably the most relevant part, but not necessarily). If required, the full build log is available here: https://people.debian.org/~sanvila/build-logs/202606/ About the archive rebuild: The build was made on virtual machines from AWS, using sbuild and a reduced chroot with only build-essential packages. If you cannot reproduce the bug please contact me privately, as I am willing to provide ssh access to a virtual machine where the bug is fully reproducible. If this is really a bug in one of the build-depends, please use reassign and add an affects on src:proton-vpn-cli, so that this is still visible in the BTS web page for this package. Thanks. -------------------------------------------------------------------------------- [...] debian/rules clean dh clean --buildsystem=pybuild dh_auto_clean -O--buildsystem=pybuild dh_autoreconf_clean -O--buildsystem=pybuild dh_clean -O--buildsystem=pybuild debian/rules binary dh binary --buildsystem=pybuild dh_update_autotools_config -O--buildsystem=pybuild dh_autoreconf -O--buildsystem=pybuild dh_auto_configure -O--buildsystem=pybuild dh_auto_build -O--buildsystem=pybuild I: pybuild plugin_pyproject:142: Building wheel for python3.14 with "build" module I: pybuild base:385: python3.14 -m build --skip-dependency-check --no-isolation --wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_proton-vpn-cli * Building wheel... /usr/lib/python3/dist-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. [... snipped ...] tests/unit/commands/test_app_help.py::test_app_help_shows_documentation_url PASSED [ 9%] tests/unit/commands/test_app_help.py::test_app_help_shows_support_links PASSED [ 9%] tests/unit/commands/test_click_exception_handler.py::test_group_with_no_subcommand_shows_missing_action_message PASSED [ 10%] tests/unit/commands/test_click_exception_handler.py::test_group_with_no_subcommand_shows_available_subcommands PASSED [ 10%] tests/unit/commands/test_click_exception_handler.py::test_group_with_no_subcommand_shows_help_hint PASSED [ 10%] tests/unit/commands/test_click_exception_handler.py::test_set_group_with_no_subcommand_lists_all_feature_commands PASSED [ 11%] tests/unit/commands/test_click_exception_handler.py::test_unknown_subcommand_shows_unknown_action_message PASSED [ 11%] tests/unit/commands/test_click_exception_handler.py::test_unknown_subcommand_shows_available_actions PASSED [ 12%] tests/unit/commands/test_click_exception_handler.py::test_unknown_subcommand_shows_help_hint PASSED [ 12%] tests/unit/commands/test_click_exception_handler.py::test_root_command_with_unknown_subcommand_shows_unknown_action_message PASSED [ 12%] tests/unit/commands/test_click_exception_handler.py::test_missing_value_for_feature_setting_shows_setting_error[netshield] PASSED [ 13%] tests/unit/commands/test_click_exception_handler.py::test_missing_value_for_feature_setting_shows_setting_error[kill-switch] PASSED [ 13%] tests/unit/commands/test_click_exception_handler.py::test_missing_value_for_feature_setting_shows_setting_error[port-forwarding] PASSED [ 14%] tests/unit/commands/test_click_exception_handler.py::test_missing_value_for_feature_setting_shows_setting_error[custom-dns] PASSED [ 14%] tests/unit/commands/test_click_exception_handler.py::test_missing_value_for_feature_setting_shows_setting_error[vpn-accelerator] PASSED [ 14%] tests/unit/commands/test_click_exception_handler.py::test_missing_value_for_feature_setting_shows_setting_error[moderate-nat] PASSED [ 15%] tests/unit/commands/test_click_exception_handler.py::test_missing_value_for_feature_setting_shows_setting_error[ipv6] PASSED [ 15%] tests/unit/commands/test_click_exception_handler.py::test_missing_value_for_feature_setting_shows_setting_error[anonymous-crash-reports] PASSED [ 16%] tests/unit/commands/test_click_exception_handler.py::test_missing_value_for_feature_setting_shows_value_help_pairs[netshield] PASSED [ 16%] tests/unit/commands/test_click_exception_handler.py::test_missing_value_for_feature_setting_shows_value_help_pairs[kill-switch] PASSED [ 16%] tests/unit/commands/test_click_exception_handler.py::test_missing_value_for_feature_setting_shows_value_help_pairs[port-forwarding] PASSED [ 17%] tests/unit/commands/test_click_exception_handler.py::test_missing_value_for_feature_setting_shows_value_help_pairs[custom-dns] PASSED [ 17%] tests/unit/commands/test_click_exception_handler.py::test_missing_value_for_feature_setting_shows_value_help_pairs[vpn-accelerator] PASSED [ 17%] tests/unit/commands/test_click_exception_handler.py::test_missing_value_for_feature_setting_shows_value_help_pairs[moderate-nat] PASSED [ 18%] tests/unit/commands/test_click_exception_handler.py::test_missing_value_for_feature_setting_shows_value_help_pairs[ipv6] PASSED [ 18%] tests/unit/commands/test_click_exception_handler.py::test_missing_value_for_feature_setting_shows_value_help_pairs[anonymous-crash-reports] PASSED [ 19%] tests/unit/commands/test_click_exception_handler.py::test_missing_value_for_feature_setting_shows_help_hint[netshield] PASSED [ 19%] tests/unit/commands/test_click_exception_handler.py::test_missing_value_for_feature_setting_shows_help_hint[kill-switch] PASSED [ 19%] tests/unit/commands/test_click_exception_handler.py::test_missing_value_for_feature_setting_shows_help_hint[port-forwarding] PASSED [ 20%] tests/unit/commands/test_click_exception_handler.py::test_missing_value_for_feature_setting_shows_help_hint[custom-dns] PASSED [ 20%] tests/unit/commands/test_click_exception_handler.py::test_missing_value_for_feature_setting_shows_help_hint[vpn-accelerator] PASSED [ 21%] tests/unit/commands/test_click_exception_handler.py::test_missing_value_for_feature_setting_shows_help_hint[moderate-nat] PASSED [ 21%] tests/unit/commands/test_click_exception_handler.py::test_missing_value_for_feature_setting_shows_help_hint[ipv6] PASSED [ 21%] tests/unit/commands/test_click_exception_handler.py::test_missing_value_for_feature_setting_shows_help_hint[anonymous-crash-reports] PASSED [ 22%] tests/unit/commands/test_click_exception_handler.py::test_missing_positional_argument_shows_argument_error PASSED [ 22%] tests/unit/commands/test_click_exception_handler.py::test_missing_positional_argument_shows_usage PASSED [ 23%] tests/unit/commands/test_click_exception_handler.py::test_missing_positional_argument_shows_help_hint PASSED [ 23%] tests/unit/commands/test_click_exception_handler.py::test_invalid_value_for_feature_setting_shows_invalid_value_error[netshield] PASSED [ 23%] tests/unit/commands/test_click_exception_handler.py::test_invalid_value_for_feature_setting_shows_invalid_value_error[kill-switch] PASSED [ 24%] tests/unit/commands/test_click_exception_handler.py::test_invalid_value_for_feature_setting_shows_invalid_value_error[port-forwarding] PASSED [ 24%] tests/unit/commands/test_click_exception_handler.py::test_invalid_value_for_feature_setting_shows_invalid_value_error[custom-dns] PASSED [ 25%] tests/unit/commands/test_click_exception_handler.py::test_invalid_value_for_feature_setting_shows_invalid_value_error[vpn-accelerator] PASSED [ 25%] tests/unit/commands/test_click_exception_handler.py::test_invalid_value_for_feature_setting_shows_invalid_value_error[moderate-nat] PASSED [ 25%] tests/unit/commands/test_click_exception_handler.py::test_invalid_value_for_feature_setting_shows_invalid_value_error[ipv6] PASSED [ 26%] tests/unit/commands/test_click_exception_handler.py::test_invalid_value_for_feature_setting_shows_invalid_value_error[anonymous-crash-reports] PASSED [ 26%] tests/unit/commands/test_click_exception_handler.py::test_invalid_value_for_feature_setting_shows_value_help_pairs[netshield] PASSED [ 26%] tests/unit/commands/test_click_exception_handler.py::test_invalid_value_for_feature_setting_shows_value_help_pairs[kill-switch] PASSED [ 27%] tests/unit/commands/test_click_exception_handler.py::test_invalid_value_for_feature_setting_shows_value_help_pairs[port-forwarding] PASSED [ 27%] tests/unit/commands/test_click_exception_handler.py::test_invalid_value_for_feature_setting_shows_value_help_pairs[custom-dns] PASSED [ 28%] tests/unit/commands/test_click_exception_handler.py::test_invalid_value_for_feature_setting_shows_value_help_pairs[vpn-accelerator] PASSED [ 28%] tests/unit/commands/test_click_exception_handler.py::test_invalid_value_for_feature_setting_shows_value_help_pairs[moderate-nat] PASSED [ 28%] tests/unit/commands/test_click_exception_handler.py::test_invalid_value_for_feature_setting_shows_value_help_pairs[ipv6] PASSED [ 29%] tests/unit/commands/test_click_exception_handler.py::test_invalid_value_for_feature_setting_shows_value_help_pairs[anonymous-crash-reports] PASSED [ 29%] tests/unit/commands/test_click_exception_handler.py::test_invalid_value_for_feature_setting_shows_help_hint[netshield] PASSED [ 30%] tests/unit/commands/test_click_exception_handler.py::test_invalid_value_for_feature_setting_shows_help_hint[kill-switch] PASSED [ 30%] tests/unit/commands/test_click_exception_handler.py::test_invalid_value_for_feature_setting_shows_help_hint[port-forwarding] PASSED [ 30%] tests/unit/commands/test_click_exception_handler.py::test_invalid_value_for_feature_setting_shows_help_hint[custom-dns] PASSED [ 31%] tests/unit/commands/test_click_exception_handler.py::test_invalid_value_for_feature_setting_shows_help_hint[vpn-accelerator] PASSED [ 31%] tests/unit/commands/test_click_exception_handler.py::test_invalid_value_for_feature_setting_shows_help_hint[moderate-nat] PASSED [ 32%] tests/unit/commands/test_click_exception_handler.py::test_invalid_value_for_feature_setting_shows_help_hint[ipv6] PASSED [ 32%] tests/unit/commands/test_click_exception_handler.py::test_invalid_value_for_feature_setting_shows_help_hint[anonymous-crash-reports] PASSED [ 32%] tests/unit/commands/test_click_exception_handler.py::test_click_exception_shows_error_message PASSED [ 33%] tests/unit/commands/test_click_exception_handler.py::test_unrecognised_exception_returns_false PASSED [ 33%] tests/unit/commands/test_click_exception_handler.py::test_usage_error_without_context_shows_error_message PASSED [ 33%] tests/unit/commands/test_location_discovery.py::test_countries_listing_notifies_of_serverlist_update_when_expired[True] PASSED [ 34%] tests/unit/commands/test_location_discovery.py::test_countries_listing_notifies_of_serverlist_update_when_expired[False] PASSED [ 34%] tests/unit/commands/test_location_discovery.py::test_countries_listing_fails_when_not_signed_in PASSED [ 35%] tests/unit/commands/test_location_discovery.py::test_countries_listing_shows_available_countries PASSED [ 35%] tests/unit/commands/test_location_discovery.py::test_cities_listing_notifies_of_serverlist_update_when_expired[True] PASSED [ 35%] tests/unit/commands/test_location_discovery.py::test_cities_listing_notifies_of_serverlist_update_when_expired[False] PASSED [ 36%] tests/unit/commands/test_location_discovery.py::test_cities_listing_listing_fails_when_not_signed_in PASSED [ 36%] tests/unit/commands/test_location_discovery.py::test_cities_listing_fails_when_provided_invalid_country_code PASSED [ 37%] tests/unit/commands/test_location_discovery.py::test_cities_listing_fails_when_provided_invalid_country_name PASSED [ 37%] tests/unit/commands/test_location_discovery.py::test_cities_listing_fails_when_country_not_found PASSED [ 37%] tests/unit/commands/test_location_discovery.py::test_cities_listing_shows_all_available_features_for_city PASSED [ 38%] tests/unit/commands/test_location_discovery.py::test_cities_listing_shows_all_available_cities PASSED [ 38%] tests/unit/commands/test_location_discovery_help.py::test_countries_help_shows_output_description PASSED [ 39%] tests/unit/commands/test_location_discovery_help.py::test_countries_help_shows_examples_section PASSED [ 39%] tests/unit/commands/test_location_discovery_help.py::test_countries_help_shows_connect_country_guidance PASSED [ 39%] tests/unit/commands/test_location_discovery_help.py::test_countries_help_shows_cities_cross_reference PASSED [ 40%] tests/unit/commands/test_location_discovery_help.py::test_countries_help_describes_subcommand PASSED [ 40%] tests/unit/commands/test_location_discovery_help.py::test_cities_help_shows_country_format_guidance PASSED [ 41%] tests/unit/commands/test_location_discovery_help.py::test_cities_help_shows_examples_section PASSED [ 41%] tests/unit/commands/test_location_discovery_help.py::test_cities_help_shows_connect_city_guidance PASSED [ 41%] tests/unit/commands/test_location_discovery_help.py::test_cities_help_shows_countries_cross_reference PASSED [ 42%] tests/unit/commands/test_location_discovery_help.py::test_cities_help_describes_subcommand PASSED [ 42%] tests/unit/commands/test_location_discovery_help.py::test_cities_list_help_explains_argument PASSED [ 42%] tests/unit/commands/test_server.py::test_connect_notifies_of_serverlist_update_when_expired[True] PASSED [ 43%] tests/unit/commands/test_server.py::test_connect_notifies_of_serverlist_update_when_expired[False] PASSED [ 43%] tests/unit/commands/test_server.py::test_connect_fails_with_suggestion_to_relax_filter_constraints_when_no_server_found PASSED [ 44%] tests/unit/commands/test_server.py::test_connect_fails_when_not_signed_in PASSED [ 44%] tests/unit/commands/test_server.py::test_connect_fails_with_correct_message_when_server_not_found[invalid-server-id-None-None] PASSED [ 44%] tests/unit/commands/test_server.py::test_connect_fails_with_correct_message_when_server_not_found[invalid-server-id-New York-US] PASSED [ 45%] tests/unit/commands/test_server.py::test_connect_fails_with_correct_message_when_server_not_found[None-New York-None] PASSED [ 45%] tests/unit/commands/test_server.py::test_connect_fails_with_correct_message_when_server_not_found[None-New York-US] PASSED [ 46%] tests/unit/commands/test_server.py::test_connect_fails_with_correct_message_when_server_not_found[None-None-US] PASSED [ 46%] tests/unit/commands/test_server.py::test_connect_fails_when_provided_invalid_country_code PASSED [ 46%] tests/unit/commands/test_server.py::test_connect_fails_when_provided_invalid_country_name PASSED [ 47%] tests/unit/commands/test_server.py::test_connect_fails_when_requested_features_require_higher_tier[invalid-server-id-None-None---p2p-P2P---random] PASSED [ 47%] tests/unit/commands/test_server.py::test_connect_fails_when_requested_features_require_higher_tier[invalid-server-id-New York-US---p2p-P2P---random] PASSED [ 48%] tests/unit/commands/test_server.py::test_connect_fails_when_requested_features_require_higher_tier[None-New York-None---p2p-P2P---random] PASSED [ 48%] tests/unit/commands/test_server.py::test_connect_fails_when_requested_features_require_higher_tier[None-New York-US---p2p-P2P---random] PASSED [ 48%] tests/unit/commands/test_server.py::test_connect_fails_when_requested_features_require_higher_tier[None-None-US---p2p-P2P---random] PASSED [ 49%] tests/unit/commands/test_server.py::test_connect_fails_when_requested_features_require_higher_tier[None-None-None---securecore-Secure Core---random] PASSED [ 49%] tests/unit/commands/test_server.py::test_connect_fails_when_requested_features_require_higher_tier[None-None-None--sc-Secure Core---random] PASSED [ 50%] tests/unit/commands/test_server.py::test_connect_fails_when_requested_features_require_higher_tier[None-None-None---tor-Tor---random] PASSED [ 50%] tests/unit/commands/test_server.py::test_connect_fails_when_requested_features_require_higher_tier[None-None-None---p2p-P2P---random] PASSED [ 50%] tests/unit/commands/test_server.py::test_connect_fails_when_requested_features_require_higher_tier[None-None-None-None-None---random] PASSED [ 51%] tests/unit/commands/test_server.py::test_connect_notifies_when_successfully_connected[1.1.1.1-True-True] PASSED [ 51%] tests/unit/commands/test_server.py::test_connect_notifies_when_successfully_connected[None-True-True] PASSED [ 51%] tests/unit/commands/test_server.py::test_connect_notifies_when_successfully_connected[None-False-True] PASSED [ 52%] tests/unit/commands/test_server.py::test_connect_notifies_when_successfully_connected[2.2.2.2-False-False] PASSED [ 52%] tests/unit/commands/test_server.py::test_connect_notifies_of_port_forwarding_server_capabilities_when_successfully_connected[True-True] PASSED [ 53%] tests/unit/commands/test_server.py::test_connect_notifies_of_port_forwarding_server_capabilities_when_successfully_connected[True-False] PASSED [ 53%] tests/unit/commands/test_server.py::test_connect_notifies_of_port_forwarding_server_capabilities_when_successfully_connected[False-True] PASSED [ 53%] tests/unit/commands/test_server.py::test_connect_notifies_of_port_forwarding_server_capabilities_when_successfully_connected[False-False] PASSED [ 54%] tests/unit/commands/test_server.py::test_connect_warns_when_using_unsupported_protocol[openvpn-udp-False] PASSED [ 54%] tests/unit/commands/test_server.py::test_connect_warns_when_using_unsupported_protocol[openvpn-tcp-False] PASSED [ 55%] tests/unit/commands/test_server.py::test_connect_warns_when_using_unsupported_protocol[wireguard-True] PASSED [ 55%] tests/unit/commands/test_server.py::test_connect_fails_with_2fa_error_message_when_vpn_2fa_is_required PASSED [ 55%] tests/unit/commands/test_server.py::test_connect_fails_with_error_when_server_connection_fails PASSED [ 56%] tests/unit/commands/test_server.py::test_status_shows_disconnected_when_no_connection PASSED [ 56%] tests/unit/commands/test_server.py::test_status_shows_connected_with_server_details[True-True] PASSED [ 57%] tests/unit/commands/test_server.py::test_status_shows_connected_with_server_details[False-True] PASSED [ 57%] tests/unit/commands/test_server.py::test_status_shows_connected_with_server_details[False-False] PASSED [ 57%] tests/unit/commands/test_server.py::test_status_notifies_of_serverlist_update_when_expired[True] PASSED [ 58%] tests/unit/commands/test_server.py::test_status_notifies_of_serverlist_update_when_expired[False] PASSED [ 58%] tests/unit/commands/test_server.py::test_servers_command_prints_redirection_successfully PASSED [ 58%] tests/unit/commands/test_server_help.py::test_connect_help_explains_server_name_argument PASSED [ 59%] tests/unit/commands/test_server_help.py::test_connect_help_shows_examples_section PASSED [ 59%] tests/unit/commands/test_server_help.py::test_connect_help_shows_quick_connection_example PASSED [ 60%] tests/unit/commands/test_server_help.py::test_connect_help_shows_location_selection_examples PASSED [ 60%] tests/unit/commands/test_server_help.py::test_connect_help_shows_feature_flag_examples PASSED [ 60%] tests/unit/commands/test_server_help.py::test_connect_help_shows_extra_secure_connection_examples PASSED [ 61%] tests/unit/commands/test_server_help.py::test_connect_help_describes_country_option PASSED [ 61%] tests/unit/commands/test_server_help.py::test_connect_help_describes_city_option PASSED [ 62%] tests/unit/commands/test_server_help.py::test_connect_help_describes_p2p_option PASSED [ 62%] tests/unit/commands/test_server_help.py::test_connect_help_describes_securecore_option PASSED [ 62%] tests/unit/commands/test_server_help.py::test_connect_help_describes_tor_option PASSED [ 63%] tests/unit/commands/test_server_help.py::test_connect_help_describes_random_option PASSED [ 63%] tests/unit/commands/test_server_help.py::test_disconnect_help_shows_examples_section PASSED [ 64%] tests/unit/commands/test_server_help.py::test_disconnect_help_shows_check_status_hint PASSED [ 64%] tests/unit/commands/test_settings.py::test_setting_all_features_fails_when_not_signed_in PASSED [ 64%] tests/unit/commands/test_settings.py::test_setting_all_paying_features_fails_when_requiring_higher_tier PASSED [ 65%] tests/unit/commands/test_settings.py::test_setting_all_features_shows_message_confirming_success PASSED [ 65%] tests/unit/commands/test_settings.py::test_setting_all_features_explains_reconnection_required_for_relevant_features_when_connected PASSED [ 66%] tests/unit/commands/test_settings.py::test_setting_custom_dns_fails_when_not_provided_with_dns_option PASSED [ 66%] tests/unit/commands/test_settings.py::test_setting_custom_dns_fails_when_not_provided_with_valid_ips PASSED [ 66%] tests/unit/commands/test_settings.py::test_enabling_port_forwarding_informs_of_required_manual_setup PASSED [ 67%] tests/unit/commands/test_settings.py::test_modifying_killswitch_only_succeeds_when_disconnected[True-0] PASSED [ 67%] tests/unit/commands/test_settings.py::test_modifying_killswitch_only_succeeds_when_disconnected[True-1] PASSED [ 67%] tests/unit/commands/test_settings.py::test_modifying_killswitch_only_succeeds_when_disconnected[False-0] PASSED [ 68%] tests/unit/commands/test_settings.py::test_modifying_killswitch_only_succeeds_when_disconnected[False-1] PASSED [ 68%] tests/unit/commands/test_settings.py::test_listing_all_settings_fails_when_not_signed_in PASSED [ 69%] tests/unit/commands/test_settings.py::test_listing_all_settings_shows_free_user_which_settings_require_higher_tier PASSED [ 69%] tests/unit/commands/test_settings.py::test_listing_all_settings_shows_correct_setting_per_feature PASSED [ 69%] tests/unit/commands/test_settings.py::test_listing_all_settings_shows_correct_guidance_for_user_tier[True] PASSED [ 70%] tests/unit/commands/test_settings.py::test_listing_all_settings_shows_correct_guidance_for_user_tier[False] PASSED [ 70%] tests/unit/commands/test_settings_help.py::test_config_help_shows_available_settings_section PASSED [ 71%] tests/unit/commands/test_settings_help.py::test_config_help_lists_all_feature_commands PASSED [ 71%] tests/unit/commands/test_settings_help.py::test_config_help_lists_all_feature_descriptions PASSED [ 71%] tests/unit/commands/test_settings_help.py::test_config_help_shows_examples_section PASSED [ 72%] tests/unit/commands/test_settings_help.py::test_config_help_shows_setting_specific_help_guidance PASSED [ 72%] tests/unit/commands/test_settings_help.py::test_config_list_help_shows_description PASSED [ 73%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_help_description[feature0] PASSED [ 73%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_help_description[feature1] PASSED [ 73%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_help_description[feature2] PASSED [ 74%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_help_description[feature3] PASSED [ 74%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_help_description[feature4] PASSED [ 75%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_help_description[feature5] PASSED [ 75%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_help_description[feature6] PASSED [ 75%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_help_description[feature7] PASSED [ 76%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_all_valid_values[feature0] PASSED [ 76%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_all_valid_values[feature1] PASSED [ 76%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_all_valid_values[feature2] PASSED [ 77%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_all_valid_values[feature3] PASSED [ 77%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_all_valid_values[feature4] PASSED [ 78%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_all_valid_values[feature5] PASSED [ 78%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_all_valid_values[feature6] PASSED [ 78%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_all_valid_values[feature7] PASSED [ 79%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_value_descriptions[feature0] PASSED [ 79%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_value_descriptions[feature1] PASSED [ 80%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_value_descriptions[feature2] PASSED [ 80%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_value_descriptions[feature3] PASSED [ 80%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_value_descriptions[feature4] PASSED [ 81%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_value_descriptions[feature5] PASSED [ 81%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_value_descriptions[feature6] PASSED [ 82%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_value_descriptions[feature7] PASSED [ 82%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_examples_section[feature0] PASSED [ 82%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_examples_section[feature1] PASSED [ 83%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_examples_section[feature2] PASSED [ 83%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_examples_section[feature3] PASSED [ 83%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_examples_section[feature4] PASSED [ 84%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_examples_section[feature5] PASSED [ 84%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_examples_section[feature6] PASSED [ 85%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_examples_section[feature7] PASSED [ 85%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_current_setting_guidance[feature0] PASSED [ 85%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_current_setting_guidance[feature1] PASSED [ 86%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_current_setting_guidance[feature2] PASSED [ 86%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_current_setting_guidance[feature3] PASSED [ 87%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_current_setting_guidance[feature4] PASSED [ 87%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_current_setting_guidance[feature5] PASSED [ 87%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_current_setting_guidance[feature6] PASSED [ 88%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_how_it_works_section[feature0] PASSED [ 88%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_how_it_works_section[feature1] PASSED [ 89%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_how_it_works_section[feature2] PASSED [ 89%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_how_it_works_section[feature3] PASSED [ 89%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_how_it_works_section[feature4] PASSED [ 90%] tests/unit/commands/test_settings_help.py::test_config_set_feature_help_shows_how_it_works_section[feature5] PASSED [ 90%] tests/unit/commands/test_settings_help.py::test_config_set_vpn_accelerator_help_shows_recommendation PASSED [ 91%] tests/unit/commands/test_settings_help.py::test_config_set_anon_crash_reports_help_shows_privacy_section PASSED [ 91%] tests/unit/commands/test_settings_help.py::test_config_set_port_forwarding_help_shows_setup_guide PASSED [ 91%] tests/unit/commands/test_settings_help.py::test_config_set_kill_switch_help_shows_behavior_section PASSED [ 92%] tests/unit/test_controller.py::test_connect_fails_if_not_logged_in PASSED [ 92%] tests/unit/test_controller.py::test_find_logical_server_fails_if_not_logged_in PASSED [ 92%] tests/unit/test_controller.py::test_find_logical_server_fails_when_specifying_server_name_as_free_user PASSED [ 93%] tests/unit/test_controller.py::test_find_logical_server_fails_when_specifying_country_as_free_user PASSED [ 93%] tests/unit/test_controller.py::test_find_logical_server_fails_when_specifying_city_as_free_user PASSED [ 94%] tests/unit/test_controller.py::test_find_logical_server_fails_when_requesting_features_as_free_user PASSED [ 94%] tests/unit/test_controller.py::test_find_logical_server_fails_when_requesting_random_server_as_free_user PASSED [ 94%] tests/unit/test_controller.py::test_connect_disconnects_when_connection_fails PASSED [ 95%] tests/unit/test_controller.py::test_get_all_countries_raises_authentication_required_exception_when_user_is_not_logged_in PASSED [ 95%] tests/unit/test_controller.py::test_save_feature_setting_raises_exception_when_not_signed_in PASSED [ 96%] tests/unit/test_controller.py::test_save_feature_setting_raises_exception_when_feature_requires_higher_tier PASSED [ 96%] tests/unit/test_controller.py::test_get_feature_setting_raises_exception_when_not_signed_in PASSED [ 96%] tests/unit/test_controller.py::test_save_settings_waits_for_confirmation_when_requesting_paying_connection_features PASSED [ 97%] tests/unit/test_controller.py::test_save_settings_does_not_wait_for_confirmation_when_requesting_free_connection_features FAILED [ 97%] tests/unit/test_exception_handler.py::test_enable_exception_handler_adds_excepthooks PASSED [ 98%] tests/unit/test_exception_handler.py::test_disable_exception_handler_removes_excepthooks PASSED [ 98%] tests/unit/test_exception_handler.py::test_exception_handling_reports_exceptions_when_relevant[KeyboardInterrupt-False] PASSED [ 98%] tests/unit/test_exception_handler.py::test_exception_handling_reports_exceptions_when_relevant[AssertionError-False] PASSED [ 99%] tests/unit/test_exception_handler.py::test_exception_handling_reports_exceptions_when_relevant[Exception-True] PASSED [ 99%] tests/unit/test_exception_handler.py::test_exception_handling_absorbs_silenced_exceptions PASSED [100%] =================================== FAILURES =================================== _ test_save_settings_does_not_wait_for_confirmation_when_requesting_free_connection_features _ @pytest.mark.asyncio async def test_save_settings_does_not_wait_for_confirmation_when_requesting_free_connection_features(): api_mock = AsyncMock(spec=ProtonVPNAPI) params_mock = Mock(spec=Params) click_ctx_mock = Mock(spec=ClickContext) vpn_connector_mock = Mock(spec=VPNConnector) settings = Settings.default(user_tier=0) # mock free user api_mock.user_tier = 0 # mock active connection vpn_connector_mock.is_connected = True api_mock.get_vpn_connector.return_value = vpn_connector_mock controller = Controller(params_mock, click_ctx_mock, api_mock) > await controller.save_settings(settings) tests/unit/test_controller.py:261: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <proton.vpn.cli.core.controller.Controller object at 0x7f2ec0653af0> settings = Settings(protocol='wireguard', killswitch=0, custom_dns=CustomDNS(enabled=False, ip_list=[]), ipv6=True, anonymous_cra...TunnelingMode.INCLUDE: 'include'>, app_paths=[], ip_ranges=[])})), packet_capture=PacketCapture(directory_path='/tmp')) async def save_settings(self, settings: Settings): """Saves general settings.""" connector = await self.get_vpn_connector() is_connected = connector.is_connected free_user_requesting_free_features =\ > self.user_on_free_tier and > settings.features.are_free_tier_defaults() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E AttributeError: 'Features' object has no attribute 'are_free_tier_defaults' proton/vpn/cli/core/controller.py:287: AttributeError =========================== short test summary info ============================ FAILED tests/unit/test_controller.py::test_save_settings_does_not_wait_for_confirmation_when_requesting_free_connection_features ======================== 1 failed, 255 passed in 0.84s ========================= E: pybuild pybuild:485: test: plugin pyproject failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_proton-vpn-cli/build; python3.13 -m pytest -v --no-cov dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.14 3.13" --parallel=2 returned exit code 13 make: *** [debian/rules:9: binary] Error 25 dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2 --------------------------------------------------------------------------------

