Skip to content
Aborted

Console Output

Skipping 485 KB.. Full Log
tests/integration/service_test.py::ServiceTest::test_scale_with_api_error PASSED [ 32%]

tests/integration/service_test.py::ServiceTest::test_scale_with_custom_container_name_outputs_warning PASSED [ 32%]

tests/integration/service_test.py::ServiceTest::test_scale_with_desired_number_already_achieved PASSED [ 32%]

tests/integration/service_test.py::ServiceTest::test_scale_with_immediate_exit PASSED [ 32%]

tests/integration/service_test.py::ServiceTest::test_scale_with_stopped_containers PASSED [ 32%]

tests/integration/service_test.py::ServiceTest::test_scale_with_stopped_containers_and_needing_creation PASSED [ 32%]

tests/integration/service_test.py::ServiceTest::test_scale_with_unexpected_exception PASSED [ 32%]

tests/integration/service_test.py::ServiceTest::test_split_env PASSED    [ 33%]

tests/integration/service_test.py::ServiceTest::test_start_container_becomes_privileged PASSED [ 33%]

tests/integration/service_test.py::ServiceTest::test_start_container_builds_images PASSED [ 33%]

tests/integration/service_test.py::ServiceTest::test_start_container_creates_fixed_external_ports PASSED [ 33%]

tests/integration/service_test.py::ServiceTest::test_start_container_creates_fixed_external_ports_when_it_is_different_to_internal_port PASSED [ 33%]

tests/integration/service_test.py::ServiceTest::test_start_container_creates_links <- tests/integration/testcases.py PASSED [ 33%]

tests/integration/service_test.py::ServiceTest::test_start_container_creates_links_with_names <- tests/integration/testcases.py PASSED [ 33%]

tests/integration/service_test.py::ServiceTest::test_start_container_creates_port_with_explicit_protocol PASSED [ 33%]

tests/integration/service_test.py::ServiceTest::test_start_container_creates_ports PASSED [ 33%]

tests/integration/service_test.py::ServiceTest::test_start_container_inherits_options_from_constructor PASSED [ 33%]

tests/integration/service_test.py::ServiceTest::test_start_container_passes_through_options PASSED [ 33%]

tests/integration/service_test.py::ServiceTest::test_start_container_stays_unprivileged PASSED [ 33%]

tests/integration/service_test.py::ServiceTest::test_start_container_uses_tagged_image_if_it_exists PASSED [ 34%]

tests/integration/service_test.py::ServiceTest::test_start_container_with_external_links <- tests/integration/testcases.py PASSED [ 34%]

tests/integration/service_test.py::ServiceTest::test_start_normal_container_does_not_create_links_to_its_own_service <- tests/integration/testcases.py PASSED [ 34%]

tests/integration/service_test.py::ServiceTest::test_start_one_off_container_creates_links_to_its_own_service <- tests/integration/testcases.py PASSED [ 34%]

tests/integration/service_test.py::ServiceTest::test_stop_signal PASSED  [ 34%]

tests/integration/service_test.py::ServiceTest::test_tmpfs PASSED        [ 34%]

tests/integration/service_test.py::ServiceTest::test_up_build_cli PASSED [ 34%]

tests/integration/service_test.py::ServiceTest::test_userns_mode_host PASSED [ 34%]

tests/integration/service_test.py::ServiceTest::test_userns_mode_none_defined PASSED [ 34%]

tests/integration/service_test.py::ServiceTest::test_with_high_enough_api_version_we_get_default_network_mode PASSED [ 34%]

tests/integration/service_test.py::ServiceTest::test_working_dir_param PASSED [ 34%]

tests/integration/service_test.py::ConfigHashTest::test_config_hash_sticks_around PASSED [ 35%]

tests/integration/service_test.py::ConfigHashTest::test_config_hash_with_custom_labels PASSED [ 35%]

tests/integration/service_test.py::ConfigHashTest::test_no_config_hash_when_one_off PASSED [ 35%]

tests/integration/service_test.py::ConfigHashTest::test_no_config_hash_when_overriding_options PASSED [ 35%]

tests/integration/state_test.py::BasicProjectTest::test_all_change PASSED [ 35%]

tests/integration/state_test.py::BasicProjectTest::test_no_change PASSED [ 35%]

tests/integration/state_test.py::BasicProjectTest::test_partial_change PASSED [ 35%]

tests/integration/state_test.py::ProjectWithDependenciesTest::test_change_leaf PASSED [ 35%]

tests/integration/state_test.py::ProjectWithDependenciesTest::test_change_middle PASSED [ 35%]

tests/integration/state_test.py::ProjectWithDependenciesTest::test_change_middle_always_recreate_deps PASSED [ 35%]

tests/integration/state_test.py::ProjectWithDependenciesTest::test_change_root PASSED [ 35%]

tests/integration/state_test.py::ProjectWithDependenciesTest::test_change_root_always_recreate_deps PASSED [ 35%]

tests/integration/state_test.py::ProjectWithDependenciesTest::test_change_root_no_recreate PASSED [ 36%]

tests/integration/state_test.py::ProjectWithDependenciesTest::test_service_recreated_when_dependency_created PASSED [ 36%]

tests/integration/state_test.py::ProjectWithDependenciesTest::test_service_removed_while_down PASSED [ 36%]

tests/integration/state_test.py::ProjectWithDependenciesTest::test_up PASSED [ 36%]

tests/integration/state_test.py::ProjectWithDependsOnDependenciesTest::test_change_leaf PASSED [ 36%]

tests/integration/state_test.py::ProjectWithDependsOnDependenciesTest::test_change_middle PASSED [ 36%]

tests/integration/state_test.py::ProjectWithDependsOnDependenciesTest::test_change_middle_always_recreate_deps PASSED [ 36%]

tests/integration/state_test.py::ProjectWithDependsOnDependenciesTest::test_change_root PASSED [ 36%]

tests/integration/state_test.py::ProjectWithDependsOnDependenciesTest::test_change_root_always_recreate_deps PASSED [ 36%]

tests/integration/state_test.py::ProjectWithDependsOnDependenciesTest::test_change_root_no_recreate PASSED [ 36%]

tests/integration/state_test.py::ProjectWithDependsOnDependenciesTest::test_dependency_added PASSED [ 36%]

tests/integration/state_test.py::ProjectWithDependsOnDependenciesTest::test_dependency_removed PASSED [ 37%]

tests/integration/state_test.py::ProjectWithDependsOnDependenciesTest::test_service_removed_while_down PASSED [ 37%]

tests/integration/state_test.py::ProjectWithDependsOnDependenciesTest::test_service_removed_while_up PASSED [ 37%]

tests/integration/state_test.py::ProjectWithDependsOnDependenciesTest::test_up PASSED [ 37%]

tests/integration/state_test.py::ServiceStateTest::test_image_changed_to_build PASSED [ 37%]

tests/integration/state_test.py::ServiceStateTest::test_trigger_create PASSED [ 37%]

tests/integration/state_test.py::ServiceStateTest::test_trigger_noop PASSED [ 37%]

tests/integration/state_test.py::ServiceStateTest::test_trigger_recreate_with_build <- tests/integration/testcases.py PASSED [ 37%]

tests/integration/state_test.py::ServiceStateTest::test_trigger_recreate_with_config_change PASSED [ 37%]

tests/integration/state_test.py::ServiceStateTest::test_trigger_recreate_with_image_change PASSED [ 37%]

tests/integration/state_test.py::ServiceStateTest::test_trigger_recreate_with_nonexistent_image_tag PASSED [ 37%]

tests/integration/state_test.py::ServiceStateTest::test_trigger_start PASSED [ 37%]

tests/integration/volume_test.py::VolumeTest::test_create_volume PASSED  [ 38%]

tests/integration/volume_test.py::VolumeTest::test_create_volume_custom_name PASSED [ 38%]

tests/integration/volume_test.py::VolumeTest::test_exists <- tests/integration/testcases.py PASSED [ 38%]

tests/integration/volume_test.py::VolumeTest::test_exists_external <- tests/integration/testcases.py PASSED [ 38%]

tests/integration/volume_test.py::VolumeTest::test_exists_external_aliased <- tests/integration/testcases.py PASSED [ 38%]

tests/integration/volume_test.py::VolumeTest::test_external_aliased_volume <- tests/integration/testcases.py PASSED [ 38%]

tests/integration/volume_test.py::VolumeTest::test_external_volume <- tests/integration/testcases.py PASSED [ 38%]

tests/integration/volume_test.py::VolumeTest::test_inspect_volume <- tests/integration/testcases.py PASSED [ 38%]

tests/integration/volume_test.py::VolumeTest::test_recreate_existing_volume PASSED [ 38%]

tests/integration/volume_test.py::VolumeTest::test_remove_volume <- tests/integration/testcases.py PASSED [ 38%]

tests/integration/volume_test.py::VolumeTest::test_volume_default_labels <- tests/integration/testcases.py PASSED [ 38%]

tests/unit/bundle_test.py::test_get_image_digest_exists PASSED           [ 39%]

tests/unit/bundle_test.py::test_get_image_digest_image_uses_digest PASSED [ 39%]

tests/unit/bundle_test.py::test_get_image_digest_from_repository PASSED  [ 39%]

tests/unit/bundle_test.py::test_get_image_digest_no_image PASSED         [ 39%]

tests/unit/bundle_test.py::test_push_image_with_saved_digest PASSED      [ 39%]

tests/unit/bundle_test.py::test_push_image PASSED                        [ 39%]

tests/unit/bundle_test.py::test_to_bundle PASSED                         [ 39%]

tests/unit/bundle_test.py::test_convert_service_to_bundle PASSED         [ 39%]

tests/unit/bundle_test.py::test_set_command_and_args_none PASSED         [ 39%]

tests/unit/bundle_test.py::test_set_command_and_args_from_command PASSED [ 39%]

tests/unit/bundle_test.py::test_set_command_and_args_from_entrypoint PASSED [ 39%]

tests/unit/bundle_test.py::test_set_command_and_args_from_both PASSED    [ 39%]

tests/unit/bundle_test.py::test_make_service_networks_default PASSED     [ 40%]

tests/unit/bundle_test.py::test_make_service_networks PASSED             [ 40%]

tests/unit/bundle_test.py::test_make_port_specs PASSED                   [ 40%]

tests/unit/bundle_test.py::test_make_port_spec_with_protocol PASSED      [ 40%]

tests/unit/bundle_test.py::test_make_port_spec_default_protocol PASSED   [ 40%]

tests/unit/cli_test.py::CLITestCase::test_command_help PASSED            [ 40%]

tests/unit/cli_test.py::CLITestCase::test_command_help_nonexistent PASSED [ 40%]

tests/unit/cli_test.py::CLITestCase::test_command_manual_and_service_ports_together PASSED [ 40%]

tests/unit/cli_test.py::CLITestCase::test_default_project_name PASSED    [ 40%]

tests/unit/cli_test.py::CLITestCase::test_get_project PASSED             [ 40%]

tests/unit/cli_test.py::CLITestCase::test_project_name_from_environment_new_var PASSED [ 40%]

tests/unit/cli_test.py::CLITestCase::test_project_name_with_empty_environment_var PASSED [ 41%]

tests/unit/cli_test.py::CLITestCase::test_project_name_with_environment_file PASSED [ 41%]

tests/unit/cli_test.py::CLITestCase::test_project_name_with_explicit_base_dir PASSED [ 41%]

tests/unit/cli_test.py::CLITestCase::test_project_name_with_explicit_project_name PASSED [ 41%]

tests/unit/cli_test.py::CLITestCase::test_project_name_with_explicit_uppercase_base_dir PASSED [ 41%]

tests/unit/cli_test.py::CLITestCase::test_run_interactive_passes_logs_false PASSED [ 41%]

tests/unit/cli_test.py::CLITestCase::test_run_service_with_restart_always PASSED [ 41%]

tests/unit/container_test.py::ContainerTest::test_environment PASSED     [ 41%]

tests/unit/container_test.py::ContainerTest::test_from_ps PASSED         [ 41%]

tests/unit/container_test.py::ContainerTest::test_from_ps_prefixed PASSED [ 41%]

tests/unit/container_test.py::ContainerTest::test_get PASSED             [ 41%]

tests/unit/container_test.py::ContainerTest::test_get_local_port PASSED  [ 41%]

tests/unit/container_test.py::ContainerTest::test_has_api_logs PASSED    [ 42%]

tests/unit/container_test.py::ContainerTest::test_human_readable_ports_none PASSED [ 42%]

tests/unit/container_test.py::ContainerTest::test_human_readable_ports_public_and_private PASSED [ 42%]

tests/unit/container_test.py::ContainerTest::test_human_readable_states_healthy PASSED [ 42%]

tests/unit/container_test.py::ContainerTest::test_human_readable_states_no_health PASSED [ 42%]

tests/unit/container_test.py::ContainerTest::test_human_readable_states_starting PASSED [ 42%]

tests/unit/container_test.py::ContainerTest::test_inspect_if_not_inspected PASSED [ 42%]

tests/unit/container_test.py::ContainerTest::test_name PASSED            [ 42%]

tests/unit/container_test.py::ContainerTest::test_name_without_project PASSED [ 42%]

tests/unit/container_test.py::ContainerTest::test_name_without_project_custom_container_name PASSED [ 42%]

tests/unit/container_test.py::ContainerTest::test_name_without_project_one_off PASSED [ 42%]

tests/unit/container_test.py::ContainerTest::test_number PASSED          [ 43%]

tests/unit/container_test.py::ContainerTest::test_short_id PASSED        [ 43%]

tests/unit/container_test.py::GetContainerNameTestCase::test_get_container_name PASSED [ 43%]

tests/unit/network_test.py::NetworkTest::test_check_remote_network_config_driver_mismatch PASSED [ 43%]

tests/unit/network_test.py::NetworkTest::test_check_remote_network_config_null_remote PASSED [ 43%]

tests/unit/network_test.py::NetworkTest::test_check_remote_network_config_null_remote_ipam_options PASSED [ 43%]

tests/unit/network_test.py::NetworkTest::test_check_remote_network_config_options_mismatch PASSED [ 43%]

tests/unit/network_test.py::NetworkTest::test_check_remote_network_config_success PASSED [ 43%]

tests/unit/network_test.py::NetworkTest::test_check_remote_network_config_whitelist PASSED [ 43%]

tests/unit/network_test.py::NetworkTest::test_check_remote_network_labels_mismatch PASSED [ 43%]

tests/unit/network_test.py::NetworkTest::test_remote_config_labels_none PASSED [ 43%]

tests/unit/parallel_test.py::ParallelTest::test_parallel_execute PASSED  [ 43%]

tests/unit/parallel_test.py::ParallelTest::test_parallel_execute_with_deps PASSED [ 44%]

tests/unit/parallel_test.py::ParallelTest::test_parallel_execute_with_global_limit PASSED [ 44%]

tests/unit/parallel_test.py::ParallelTest::test_parallel_execute_with_limit PASSED [ 44%]

tests/unit/parallel_test.py::ParallelTest::test_parallel_execute_with_upstream_errors PASSED [ 44%]

tests/unit/parallel_test.py::test_parallel_execute_alignment PASSED      [ 44%]

tests/unit/parallel_test.py::test_parallel_execute_ansi PASSED           [ 44%]

tests/unit/parallel_test.py::test_parallel_execute_noansi PASSED         [ 44%]

tests/unit/progress_stream_test.py::ProgressStreamTestCase::test_get_digest_from_pull PASSED [ 44%]

tests/unit/progress_stream_test.py::ProgressStreamTestCase::test_get_digest_from_push PASSED [ 44%]

tests/unit/progress_stream_test.py::ProgressStreamTestCase::test_mismatched_encoding_stream_write PASSED [ 44%]

tests/unit/progress_stream_test.py::ProgressStreamTestCase::test_stream_output PASSED [ 44%]

tests/unit/progress_stream_test.py::ProgressStreamTestCase::test_stream_output_div_zero PASSED [ 45%]

tests/unit/progress_stream_test.py::ProgressStreamTestCase::test_stream_output_no_progress_event_no_tty PASSED [ 45%]

tests/unit/progress_stream_test.py::ProgressStreamTestCase::test_stream_output_null_total PASSED [ 45%]

tests/unit/progress_stream_test.py::ProgressStreamTestCase::test_stream_output_progress_event_no_tty PASSED [ 45%]

tests/unit/progress_stream_test.py::ProgressStreamTestCase::test_stream_output_progress_event_tty PASSED [ 45%]

tests/unit/project_test.py::ProjectTest::test_avoid_multiple_push PASSED [ 45%]

tests/unit/project_test.py::ProjectTest::test_build_container_operation_with_timeout_func_does_not_mutate_options_with_timeout PASSED [ 45%]

tests/unit/project_test.py::ProjectTest::test_container_without_name PASSED [ 45%]

tests/unit/project_test.py::ProjectTest::test_down_with_no_resources PASSED [ 45%]

tests/unit/project_test.py::ProjectTest::test_error_parallel_pull PASSED [ 45%]

tests/unit/project_test.py::ProjectTest::test_events PASSED              [ 45%]

tests/unit/project_test.py::ProjectTest::test_events_legacy PASSED       [ 45%]

tests/unit/project_test.py::ProjectTest::test_from_config_v1 PASSED      [ 46%]

tests/unit/project_test.py::ProjectTest::test_from_config_v2 PASSED      [ 46%]

tests/unit/project_test.py::ProjectTest::test_get_secrets_external_warning PASSED [ 46%]

tests/unit/project_test.py::ProjectTest::test_get_secrets_no_secret_def PASSED [ 46%]

tests/unit/project_test.py::ProjectTest::test_get_secrets_secret_file_warning PASSED [ 46%]

tests/unit/project_test.py::ProjectTest::test_get_secrets_uid_gid_mode_warning PASSED [ 46%]

tests/unit/project_test.py::ProjectTest::test_get_service PASSED         [ 46%]

tests/unit/project_test.py::ProjectTest::test_get_services_removes_duplicates_following_links PASSED [ 46%]

tests/unit/project_test.py::ProjectTest::test_get_services_returns_all_services_without_args PASSED [ 46%]

tests/unit/project_test.py::ProjectTest::test_get_services_returns_listed_services_with_args PASSED [ 46%]

tests/unit/project_test.py::ProjectTest::test_get_services_with_include_links PASSED [ 46%]

tests/unit/project_test.py::ProjectTest::test_net_unset PASSED           [ 47%]

tests/unit/project_test.py::ProjectTest::test_no_such_service_unicode PASSED [ 47%]

tests/unit/project_test.py::ProjectTest::test_no_warning_in_normal_mode PASSED [ 47%]

tests/unit/project_test.py::ProjectTest::test_no_warning_on_stop PASSED  [ 47%]

tests/unit/project_test.py::ProjectTest::test_no_warning_with_no_swarm_info PASSED [ 47%]

tests/unit/project_test.py::ProjectTest::test_project_platform_value PASSED [ 47%]

tests/unit/project_test.py::ProjectTest::test_use_net_from_container PASSED [ 47%]

tests/unit/project_test.py::ProjectTest::test_use_net_from_service PASSED [ 47%]

tests/unit/project_test.py::ProjectTest::test_use_volumes_from_container PASSED [ 47%]

tests/unit/project_test.py::ProjectTest::test_use_volumes_from_service_container PASSED [ 47%]

tests/unit/project_test.py::ProjectTest::test_use_volumes_from_service_no_container PASSED [ 47%]

tests/unit/project_test.py::ProjectTest::test_uses_default_network_false PASSED [ 47%]

tests/unit/project_test.py::ProjectTest::test_uses_default_network_true PASSED [ 48%]

tests/unit/service_test.py::ServiceTest::test_build_does_not_pull PASSED [ 48%]

tests/unit/service_test.py::ServiceTest::test_build_isolation_from_build_override_service_config PASSED [ 48%]

tests/unit/service_test.py::ServiceTest::test_build_service_with_proxy_config PASSED [ 48%]

tests/unit/service_test.py::ServiceTest::test_build_volume_options_duplicate_binds PASSED [ 48%]

tests/unit/service_test.py::ServiceTest::test_build_with_default_platform PASSED [ 48%]

tests/unit/service_test.py::ServiceTest::test_build_with_isolation_from_service_config PASSED [ 48%]

tests/unit/service_test.py::ServiceTest::test_build_with_override_build_args PASSED [ 48%]

tests/unit/service_test.py::ServiceTest::test_build_with_platform PASSED [ 48%]

tests/unit/service_test.py::ServiceTest::test_cgroup_parent PASSED       [ 48%]

tests/unit/service_test.py::ServiceTest::test_config_dict PASSED         [ 48%]

tests/unit/service_test.py::ServiceTest::test_config_dict_with_network_mode_from_container PASSED [ 49%]

tests/unit/service_test.py::ServiceTest::test_config_hash_matches_label PASSED [ 49%]

tests/unit/service_test.py::ServiceTest::test_container_without_name PASSED [ 49%]

tests/unit/service_test.py::ServiceTest::test_containers PASSED          [ 49%]

tests/unit/service_test.py::ServiceTest::test_containers_with_containers PASSED [ 49%]

tests/unit/service_test.py::ServiceTest::test_create_container PASSED    [ 49%]

tests/unit/service_test.py::ServiceTest::test_create_when_removed_containers_are_listed PASSED [ 49%]

tests/unit/service_test.py::ServiceTest::test_ensure_image_exists_force_build PASSED [ 49%]

tests/unit/service_test.py::ServiceTest::test_ensure_image_exists_no_build PASSED [ 49%]

tests/unit/service_test.py::ServiceTest::test_ensure_image_exists_no_build_but_needs_build PASSED [ 49%]

tests/unit/service_test.py::ServiceTest::test_get_container PASSED       [ 49%]

tests/unit/service_test.py::ServiceTest::test_get_container_create_options_does_not_mutate_options PASSED [ 50%]

tests/unit/service_test.py::ServiceTest::test_get_container_create_options_no_affinity_without_binds PASSED [ 50%]

tests/unit/service_test.py::ServiceTest::test_get_container_create_options_sets_affinity_with_binds PASSED [ 50%]

tests/unit/service_test.py::ServiceTest::test_get_container_create_options_with_name_option PASSED [ 50%]

tests/unit/service_test.py::ServiceTest::test_get_container_not_found PASSED [ 50%]

tests/unit/service_test.py::ServiceTest::test_get_create_options_with_proxy_config PASSED [ 50%]

tests/unit/service_test.py::ServiceTest::test_get_volumes_from_container PASSED [ 50%]

tests/unit/service_test.py::ServiceTest::test_get_volumes_from_container_read_only PASSED [ 50%]

tests/unit/service_test.py::ServiceTest::test_get_volumes_from_service_container_exists PASSED [ 50%]

tests/unit/service_test.py::ServiceTest::test_get_volumes_from_service_container_exists_with_flags PASSED [ 50%]

tests/unit/service_test.py::ServiceTest::test_get_volumes_from_service_no_container PASSED [ 50%]

tests/unit/service_test.py::ServiceTest::test_image_name_default PASSED  [ 50%]

tests/unit/service_test.py::ServiceTest::test_image_name_from_config PASSED [ 51%]

tests/unit/service_test.py::ServiceTest::test_log_opt PASSED             [ 51%]

tests/unit/service_test.py::ServiceTest::test_mem_reservation PASSED     [ 51%]

tests/unit/service_test.py::ServiceTest::test_memory_swap_limit PASSED   [ 51%]

tests/unit/service_test.py::ServiceTest::test_no_default_hostname_when_not_using_networking PASSED [ 51%]

tests/unit/service_test.py::ServiceTest::test_only_log_warning_when_host_ports_clash PASSED [ 51%]

tests/unit/service_test.py::ServiceTest::test_parse_proxy_config PASSED  [ 51%]

tests/unit/service_test.py::ServiceTest::test_parse_proxy_config_per_host PASSED [ 51%]

tests/unit/service_test.py::ServiceTest::test_parse_repository_tag PASSED [ 51%]

tests/unit/service_test.py::ServiceTest::test_pull_image PASSED          [ 51%]

tests/unit/service_test.py::ServiceTest::test_pull_image_digest PASSED   [ 51%]

tests/unit/service_test.py::ServiceTest::test_pull_image_no_tag PASSED   [ 52%]

tests/unit/service_test.py::ServiceTest::test_pull_image_with_default_platform PASSED [ 52%]

tests/unit/service_test.py::ServiceTest::test_pull_image_with_platform PASSED [ 52%]

tests/unit/service_test.py::ServiceTest::test_pull_image_with_platform_unsupported_api PASSED [ 52%]

tests/unit/service_test.py::ServiceTest::test_recreate_container PASSED  [ 52%]

tests/unit/service_test.py::ServiceTest::test_recreate_container_with_timeout PASSED [ 52%]

tests/unit/service_test.py::ServiceTest::test_remove_image_all_does_remove PASSED [ 52%]

tests/unit/service_test.py::ServiceTest::test_remove_image_local_with_image_name_doesnt_remove PASSED [ 52%]

tests/unit/service_test.py::ServiceTest::test_remove_image_local_without_image_name_does_remove PASSED [ 52%]

tests/unit/service_test.py::ServiceTest::test_remove_image_none PASSED   [ 52%]

tests/unit/service_test.py::ServiceTest::test_remove_image_with_error PASSED [ 52%]

tests/unit/service_test.py::ServiceTest::test_remove_non_existing_image PASSED [ 52%]

tests/unit/service_test.py::ServiceTest::test_self_reference_external_link PASSED [ 53%]

tests/unit/service_test.py::ServiceTest::test_service_ignore_default_platform_with_unsupported_api PASSED [ 53%]

tests/unit/service_test.py::ServiceTest::test_service_platform_precedence PASSED [ 53%]

tests/unit/service_test.py::ServiceTest::test_specifies_host_port_with_container_port PASSED [ 53%]

tests/unit/service_test.py::ServiceTest::test_specifies_host_port_with_container_port_range PASSED [ 53%]

tests/unit/service_test.py::ServiceTest::test_specifies_host_port_with_host_ip_and_port PASSED [ 53%]

tests/unit/service_test.py::ServiceTest::test_specifies_host_port_with_host_ip_and_port_range PASSED [ 53%]

tests/unit/service_test.py::ServiceTest::test_specifies_host_port_with_host_ip_no_port PASSED [ 53%]

tests/unit/service_test.py::ServiceTest::test_specifies_host_port_with_host_ip_no_port_range PASSED [ 53%]

tests/unit/service_test.py::ServiceTest::test_specifies_host_port_with_host_port PASSED [ 53%]

tests/unit/service_test.py::ServiceTest::test_specifies_host_port_with_host_port_range PASSED [ 53%]

tests/unit/service_test.py::ServiceTest::test_specifies_host_port_with_no_ports PASSED [ 54%]

tests/unit/service_test.py::ServiceTest::test_split_domainname_both PASSED [ 54%]

tests/unit/service_test.py::ServiceTest::test_split_domainname_fqdn PASSED [ 54%]

tests/unit/service_test.py::ServiceTest::test_split_domainname_none PASSED [ 54%]

tests/unit/service_test.py::ServiceTest::test_split_domainname_weird PASSED [ 54%]

tests/unit/service_test.py::ServiceTest::test_stop_grace_period PASSED   [ 54%]

tests/unit/service_test.py::ServiceTest::test_volumes_order_is_preserved PASSED [ 54%]

tests/unit/service_test.py::TestServiceNetwork::test_connect_container_to_networks_short_aliase_exists PASSED [ 54%]

tests/unit/service_test.py::BuildUlimitsTestCase::test_build_ulimits_with_dict PASSED [ 54%]

tests/unit/service_test.py::BuildUlimitsTestCase::test_build_ulimits_with_integers_and_dicts PASSED [ 54%]

tests/unit/service_test.py::BuildUlimitsTestCase::test_build_ulimits_with_ints PASSED [ 54%]

tests/unit/service_test.py::NetTestCase::test_network_mode PASSED        [ 54%]

tests/unit/service_test.py::NetTestCase::test_network_mode_container PASSED [ 55%]

tests/unit/service_test.py::NetTestCase::test_network_mode_service PASSED [ 55%]

tests/unit/service_test.py::NetTestCase::test_network_mode_service_no_containers PASSED [ 55%]

tests/unit/service_test.py::ServicePortsTest::test_formatted_ports PASSED [ 55%]

tests/unit/service_test.py::ServiceVolumesTest::test_build_volume_binding PASSED [ 55%]

tests/unit/service_test.py::ServiceVolumesTest::test_create_with_special_volume_mode PASSED [ 55%]

tests/unit/service_test.py::ServiceVolumesTest::test_get_container_create_options_with_different_host_path_in_container_json PASSED [ 55%]

tests/unit/service_test.py::ServiceVolumesTest::test_get_container_data_volumes PASSED [ 55%]

tests/unit/service_test.py::ServiceVolumesTest::test_merge_volume_bindings PASSED [ 55%]

tests/unit/service_test.py::ServiceVolumesTest::test_mount_same_host_path_to_two_volumes PASSED [ 55%]

tests/unit/service_test.py::ServiceVolumesTest::test_warn_on_masked_no_warning_with_container_only_option PASSED [ 55%]

tests/unit/service_test.py::ServiceVolumesTest::test_warn_on_masked_no_warning_with_same_path PASSED [ 56%]

tests/unit/service_test.py::ServiceVolumesTest::test_warn_on_masked_volume_no_warning_when_no_container_volumes PASSED [ 56%]

tests/unit/service_test.py::ServiceVolumesTest::test_warn_on_masked_volume_when_masked PASSED [ 56%]

tests/unit/service_test.py::ServiceSecretTest::test_get_secret_volumes PASSED [ 56%]

tests/unit/service_test.py::ServiceSecretTest::test_get_secret_volumes_abspath PASSED [ 56%]

tests/unit/service_test.py::ServiceSecretTest::test_get_secret_volumes_no_target PASSED [ 56%]

tests/unit/service_test.py::RewriteBuildPathTest::test_rewrite_unix_path PASSED [ 56%]

tests/unit/service_test.py::RewriteBuildPathTest::test_rewrite_url_no_prefix PASSED [ 56%]

tests/unit/service_test.py::RewriteBuildPathTest::test_rewrite_windows_path PASSED [ 56%]

tests/unit/split_buffer_test.py::SplitBufferTest::test_chunked_line PASSED [ 56%]

tests/unit/split_buffer_test.py::SplitBufferTest::test_multiple_line_chunk PASSED [ 56%]

tests/unit/split_buffer_test.py::SplitBufferTest::test_no_end_separator PASSED [ 56%]

tests/unit/split_buffer_test.py::SplitBufferTest::test_preserves_unicode_sequences_within_lines PASSED [ 57%]

tests/unit/split_buffer_test.py::SplitBufferTest::test_single_line_chunks PASSED [ 57%]

tests/unit/timeparse_test.py::test_milli PASSED                          [ 57%]

tests/unit/timeparse_test.py::test_milli_float PASSED                    [ 57%]

tests/unit/timeparse_test.py::test_second_milli PASSED                   [ 57%]

tests/unit/timeparse_test.py::test_second_milli_micro PASSED             [ 57%]

tests/unit/timeparse_test.py::test_second PASSED                         [ 57%]

tests/unit/timeparse_test.py::test_second_as_float PASSED                [ 57%]

tests/unit/timeparse_test.py::test_minute PASSED                         [ 57%]

tests/unit/timeparse_test.py::test_hour_minute PASSED                    [ 57%]

tests/unit/timeparse_test.py::test_minute_as_float PASSED                [ 57%]

tests/unit/timeparse_test.py::test_hour_minute_second PASSED             [ 58%]

tests/unit/timeparse_test.py::test_invalid_with_space PASSED             [ 58%]

tests/unit/timeparse_test.py::test_invalid_with_comma PASSED             [ 58%]

tests/unit/timeparse_test.py::test_invalid_with_empty_string PASSED      [ 58%]

tests/unit/utils_test.py::TestJsonSplitter::test_json_splitter_no_object PASSED [ 58%]

tests/unit/utils_test.py::TestJsonSplitter::test_json_splitter_with_object PASSED [ 58%]

tests/unit/utils_test.py::TestJsonSplitter::test_json_splitter_leading_whitespace PASSED [ 58%]

tests/unit/utils_test.py::TestStreamAsText::test_stream_with_non_utf_unicode_character PASSED [ 58%]

tests/unit/utils_test.py::TestStreamAsText::test_stream_with_utf_character PASSED [ 58%]

tests/unit/utils_test.py::TestJsonStream::test_with_falsy_entries PASSED [ 58%]

tests/unit/utils_test.py::TestJsonStream::test_with_leading_whitespace PASSED [ 58%]

tests/unit/utils_test.py::TestParseBytes::test_parse_bytes PASSED        [ 58%]

tests/unit/utils_test.py::TestMoreItertools::test_unique_everseen PASSED [ 59%]

tests/unit/volume_test.py::TestVolume::test_remove_local_volume PASSED   [ 59%]

tests/unit/volume_test.py::TestVolume::test_remove_external_volume PASSED [ 59%]

tests/unit/cli/command_test.py::TestGetConfigPathFromOptions::test_path_from_options PASSED [ 59%]

tests/unit/cli/command_test.py::TestGetConfigPathFromOptions::test_single_path_from_env PASSED [ 59%]

tests/unit/cli/command_test.py::TestGetConfigPathFromOptions::test_multiple_path_from_env PASSED [ 59%]

tests/unit/cli/command_test.py::TestGetConfigPathFromOptions::test_multiple_path_from_env_windows SKIPPED [ 59%]

tests/unit/cli/command_test.py::TestGetConfigPathFromOptions::test_multiple_path_from_env_custom_separator PASSED [ 59%]

tests/unit/cli/command_test.py::TestGetConfigPathFromOptions::test_no_path PASSED [ 59%]

tests/unit/cli/command_test.py::TestGetConfigPathFromOptions::test_unicode_path_from_options PASSED [ 59%]

tests/unit/cli/command_test.py::TestGetConfigPathFromOptions::test_unicode_path_from_env PASSED [ 59%]

tests/unit/cli/docker_client_test.py::DockerClientTestCase::test_custom_timeout_error PASSED [ 60%]

tests/unit/cli/docker_client_test.py::DockerClientTestCase::test_docker_client_no_home PASSED [ 60%]

tests/unit/cli/docker_client_test.py::DockerClientTestCase::test_docker_client_with_custom_timeout PASSED [ 60%]

tests/unit/cli/docker_client_test.py::DockerClientTestCase::test_user_agent PASSED [ 60%]

tests/unit/cli/docker_client_test.py::TLSConfigTestCase::test_assert_hostname_explicit_skip PASSED [ 60%]

tests/unit/cli/docker_client_test.py::TLSConfigTestCase::test_simple_tls PASSED [ 60%]

tests/unit/cli/docker_client_test.py::TLSConfigTestCase::test_tls_ca_cert PASSED [ 60%]

tests/unit/cli/docker_client_test.py::TLSConfigTestCase::test_tls_ca_cert_explicit PASSED [ 60%]

tests/unit/cli/docker_client_test.py::TLSConfigTestCase::test_tls_client_and_ca PASSED [ 60%]

tests/unit/cli/docker_client_test.py::TLSConfigTestCase::test_tls_client_and_ca_explicit PASSED [ 60%]

tests/unit/cli/docker_client_test.py::TLSConfigTestCase::test_tls_client_and_ca_quoted_paths PASSED [ 60%]

tests/unit/cli/docker_client_test.py::TLSConfigTestCase::test_tls_client_cert PASSED [ 60%]

tests/unit/cli/docker_client_test.py::TLSConfigTestCase::test_tls_client_cert_explicit PASSED [ 61%]

tests/unit/cli/docker_client_test.py::TLSConfigTestCase::test_tls_client_missing_key PASSED [ 61%]

tests/unit/cli/docker_client_test.py::TLSConfigTestCase::test_tls_flags_override_environment PASSED [ 61%]

tests/unit/cli/docker_client_test.py::TLSConfigTestCase::test_tls_mixed_environment_and_flags PASSED [ 61%]

tests/unit/cli/docker_client_test.py::TLSConfigTestCase::test_tls_simple_with_tls_version PASSED [ 61%]

tests/unit/cli/docker_client_test.py::TLSConfigTestCase::test_tls_verify_default_cert_path PASSED [ 61%]

tests/unit/cli/docker_client_test.py::TLSConfigTestCase::test_tls_verify_env_falsy_value PASSED [ 61%]

tests/unit/cli/docker_client_test.py::TLSConfigTestCase::test_tls_verify_flag_no_override PASSED [ 61%]

tests/unit/cli/docker_client_test.py::TestGetTlsVersion::test_get_tls_version_default PASSED [ 61%]

tests/unit/cli/docker_client_test.py::TestGetTlsVersion::test_get_tls_version_upgrade PASSED [ 61%]

tests/unit/cli/docker_client_test.py::TestGetTlsVersion::test_get_tls_version_unavailable PASSED [ 61%]

tests/unit/cli/errors_test.py::TestHandleConnectionErrors::test_generic_connection_error PASSED [ 62%]

tests/unit/cli/errors_test.py::TestHandleConnectionErrors::test_api_error_version_mismatch PASSED [ 62%]

tests/unit/cli/errors_test.py::TestHandleConnectionErrors::test_api_error_version_mismatch_unicode_explanation PASSED [ 62%]

tests/unit/cli/errors_test.py::TestHandleConnectionErrors::test_api_error_version_other PASSED [ 62%]

tests/unit/cli/errors_test.py::TestHandleConnectionErrors::test_api_error_version_other_unicode_explanation PASSED [ 62%]

tests/unit/cli/errors_test.py::TestHandleConnectionErrors::test_windows_pipe_error_no_data SKIPPED [ 62%]

tests/unit/cli/errors_test.py::TestHandleConnectionErrors::test_windows_pipe_error_misc SKIPPED [ 62%]

tests/unit/cli/errors_test.py::TestHandleConnectionErrors::test_windows_pipe_error_encoding_issue SKIPPED [ 62%]

tests/unit/cli/formatter_test.py::ConsoleWarningFormatterTestCase::test_format_error PASSED [ 62%]

tests/unit/cli/formatter_test.py::ConsoleWarningFormatterTestCase::test_format_info PASSED [ 62%]

tests/unit/cli/formatter_test.py::ConsoleWarningFormatterTestCase::test_format_unicode_error PASSED [ 62%]

tests/unit/cli/formatter_test.py::ConsoleWarningFormatterTestCase::test_format_unicode_info PASSED [ 62%]

tests/unit/cli/formatter_test.py::ConsoleWarningFormatterTestCase::test_format_unicode_warn PASSED [ 63%]

tests/unit/cli/formatter_test.py::ConsoleWarningFormatterTestCase::test_format_warn PASSED [ 63%]

tests/unit/cli/log_printer_test.py::TestLogPresenter::test_monochrome PASSED [ 63%]

tests/unit/cli/log_printer_test.py::TestLogPresenter::test_polychrome PASSED [ 63%]

tests/unit/cli/log_printer_test.py::test_wait_on_exit PASSED             [ 63%]

tests/unit/cli/log_printer_test.py::test_wait_on_exit_raises PASSED      [ 63%]

tests/unit/cli/log_printer_test.py::test_build_no_log_generator PASSED   [ 63%]

tests/unit/cli/log_printer_test.py::TestBuildLogGenerator::test_no_log_stream PASSED [ 63%]

tests/unit/cli/log_printer_test.py::TestBuildLogGenerator::test_with_log_stream PASSED [ 63%]

tests/unit/cli/log_printer_test.py::TestBuildLogGenerator::test_unicode PASSED [ 63%]

tests/unit/cli/log_printer_test.py::TestWatchEvents::test_stop_event PASSED [ 63%]

tests/unit/cli/log_printer_test.py::TestWatchEvents::test_start_event PASSED [ 64%]

tests/unit/cli/log_printer_test.py::TestWatchEvents::test_container_attach_event PASSED [ 64%]

tests/unit/cli/log_printer_test.py::TestWatchEvents::test_other_event PASSED [ 64%]

tests/unit/cli/log_printer_test.py::TestConsumeQueue::test_item_is_an_exception PASSED [ 64%]

tests/unit/cli/log_printer_test.py::TestConsumeQueue::test_item_is_stop_without_cascade_stop PASSED [ 64%]

tests/unit/cli/log_printer_test.py::TestConsumeQueue::test_item_is_stop_with_cascade_stop PASSED [ 64%]

tests/unit/cli/log_printer_test.py::TestConsumeQueue::test_item_is_none_when_timeout_is_hit PASSED [ 64%]

tests/unit/cli/main_test.py::TestCLIMainTestCase::test_filter_containers_to_service_names PASSED [ 64%]

tests/unit/cli/main_test.py::TestCLIMainTestCase::test_filter_containers_to_service_names_all PASSED [ 64%]

tests/unit/cli/main_test.py::TestCLIMainTestCase::test_warning_in_swarm_mode PASSED [ 64%]

tests/unit/cli/main_test.py::TestCLIMainTestCase::test_build_one_off_container_options PASSED [ 64%]

tests/unit/cli/main_test.py::TestCLIMainTestCase::test_get_docker_start_call PASSED [ 64%]

tests/unit/cli/main_test.py::TestSetupConsoleHandlerTestCase::test_with_tty_verbose PASSED [ 65%]

tests/unit/cli/main_test.py::TestSetupConsoleHandlerTestCase::test_with_tty_not_verbose PASSED [ 65%]

tests/unit/cli/main_test.py::TestSetupConsoleHandlerTestCase::test_with_not_a_tty PASSED [ 65%]

tests/unit/cli/main_test.py::TestConvergeStrategyFromOptsTestCase::test_invalid_opts PASSED [ 65%]

tests/unit/cli/main_test.py::TestConvergeStrategyFromOptsTestCase::test_always PASSED [ 65%]

tests/unit/cli/main_test.py::TestConvergeStrategyFromOptsTestCase::test_never PASSED [ 65%]

tests/unit/cli/main_test.py::TestConvergeStrategyFromOptsTestCase::test_changed PASSED [ 65%]

tests/unit/cli/main_test.py::TestCallDocker::test_simple_no_options PASSED [ 65%]

tests/unit/cli/main_test.py::TestCallDocker::test_simple_tls_option PASSED [ 65%]

tests/unit/cli/main_test.py::TestCallDocker::test_advanced_tls_options PASSED [ 65%]

tests/unit/cli/main_test.py::TestCallDocker::test_with_host_option PASSED [ 65%]

tests/unit/cli/main_test.py::TestCallDocker::test_with_http_host PASSED  [ 66%]

tests/unit/cli/main_test.py::TestCallDocker::test_with_host_option_shorthand_equal PASSED [ 66%]

tests/unit/cli/main_test.py::TestCallDocker::test_with_env PASSED        [ 66%]

tests/unit/cli/utils_test.py::UnquotePathTest::test_nested_quotes PASSED [ 66%]

tests/unit/cli/utils_test.py::UnquotePathTest::test_no_quotes PASSED     [ 66%]

tests/unit/cli/utils_test.py::UnquotePathTest::test_simple_quotes PASSED [ 66%]

tests/unit/cli/utils_test.py::UnquotePathTest::test_uneven_quotes PASSED [ 66%]

tests/unit/cli/utils_test.py::HumanReadableFileSizeTest::test_100b PASSED [ 66%]

tests/unit/cli/utils_test.py::HumanReadableFileSizeTest::test_1023b PASSED [ 66%]

tests/unit/cli/utils_test.py::HumanReadableFileSizeTest::test_1kb PASSED [ 66%]

tests/unit/cli/utils_test.py::HumanReadableFileSizeTest::test_999b PASSED [ 66%]

tests/unit/cli/utils_test.py::HumanReadableFileSizeTest::test_units PASSED [ 66%]

tests/unit/cli/verbose_proxy_test.py::VerboseProxyTestCase::test_format_call PASSED [ 67%]

tests/unit/cli/verbose_proxy_test.py::VerboseProxyTestCase::test_format_return PASSED [ 67%]

tests/unit/cli/verbose_proxy_test.py::VerboseProxyTestCase::test_format_return_no_result PASSED [ 67%]

tests/unit/cli/verbose_proxy_test.py::VerboseProxyTestCase::test_format_return_sequence PASSED [ 67%]

tests/unit/config/config_test.py::ConfigTest::test_build_args_allow_empty_properties PASSED [ 67%]

tests/unit/config/config_test.py::ConfigTest::test_build_args_check_zero_preserved PASSED [ 67%]

tests/unit/config/config_test.py::ConfigTest::test_config_build_configuration PASSED [ 67%]

tests/unit/config/config_test.py::ConfigTest::test_config_build_configuration_v2 PASSED [ 67%]

tests/unit/config/config_test.py::ConfigTest::test_config_convertible_label_types PASSED [ 67%]

tests/unit/config/config_test.py::ConfigTest::test_config_duplicate_cache_from_values_validation_error PASSED [ 67%]

tests/unit/config/config_test.py::ConfigTest::test_config_duplicate_mount_points PASSED [ 67%]

tests/unit/config/config_test.py::ConfigTest::test_config_extra_hosts_list_of_dicts_validation_error PASSED [ 68%]

tests/unit/config/config_test.py::ConfigTest::test_config_extra_hosts_string_raises_validation_error PASSED [ 68%]

tests/unit/config/config_test.py::ConfigTest::test_config_hint PASSED    [ 68%]

tests/unit/config/config_test.py::ConfigTest::test_config_integer_service_name_raise_validation_error PASSED [ 68%]

tests/unit/config/config_test.py::ConfigTest::test_config_integer_service_name_raise_validation_error_v2 PASSED [ 68%]

tests/unit/config/config_test.py::ConfigTest::test_config_integer_service_name_raise_validation_error_v2_when_no_interpolate PASSED [ 68%]

tests/unit/config/config_test.py::ConfigTest::test_config_integer_service_property_raise_validation_error PASSED [ 68%]

tests/unit/config/config_test.py::ConfigTest::test_config_invalid_ipam_config PASSED [ 68%]

tests/unit/config/config_test.py::ConfigTest::test_config_invalid_label_types PASSED [ 68%]

tests/unit/config/config_test.py::ConfigTest::test_config_invalid_service_name_raise_validation_error PASSED [ 68%]

tests/unit/config/config_test.py::ConfigTest::test_config_ulimits_invalid_keys_validation_error PASSED [ 68%]

tests/unit/config/config_test.py::ConfigTest::test_config_ulimits_required_keys_validation_error PASSED [ 68%]

tests/unit/config/config_test.py::ConfigTest::test_config_ulimits_soft_greater_than_hard_error PASSED [ 69%]

tests/unit/config/config_test.py::ConfigTest::test_config_valid_environment_dict_key_contains_dashes PASSED [ 69%]

tests/unit/config/config_test.py::ConfigTest::test_config_valid_ipam_config PASSED [ 69%]

tests/unit/config/config_test.py::ConfigTest::test_config_valid_service_label_validation PASSED [ 69%]

tests/unit/config/config_test.py::ConfigTest::test_config_valid_service_names PASSED [ 69%]

tests/unit/config/config_test.py::ConfigTest::test_depends_on_orders_services PASSED [ 69%]

tests/unit/config/config_test.py::ConfigTest::test_depends_on_unknown_service_errors PASSED [ 69%]

tests/unit/config/config_test.py::ConfigTest::test_dns_opt_option PASSED [ 69%]

tests/unit/config/config_test.py::ConfigTest::test_empty_environment_key_allowed PASSED [ 69%]

tests/unit/config/config_test.py::ConfigTest::test_external_volume_config PASSED [ 69%]

tests/unit/config/config_test.py::ConfigTest::test_external_volume_invalid_config PASSED [ 69%]

tests/unit/config/config_test.py::ConfigTest::test_group_add_option PASSED [ 70%]

tests/unit/config/config_test.py::ConfigTest::test_invalid_config_build_and_image_specified_v1 PASSED [ 70%]

tests/unit/config/config_test.py::ConfigTest::test_invalid_config_not_a_dictionary PASSED [ 70%]

tests/unit/config/config_test.py::ConfigTest::test_invalid_config_not_unique_items PASSED [ 70%]

tests/unit/config/config_test.py::ConfigTest::test_invalid_config_type_should_be_an_array PASSED [ 70%]

tests/unit/config/config_test.py::ConfigTest::test_invalid_config_v1 PASSED [ 70%]

tests/unit/config/config_test.py::ConfigTest::test_invalid_config_v2 PASSED [ 70%]

tests/unit/config/config_test.py::ConfigTest::test_invalid_list_of_strings_format PASSED [ 70%]

tests/unit/config/config_test.py::ConfigTest::test_isolation_option PASSED [ 70%]

tests/unit/config/config_test.py::ConfigTest::test_linked_service_is_undefined PASSED [ 70%]

tests/unit/config/config_test.py::ConfigTest::test_load PASSED           [ 70%]

tests/unit/config/config_test.py::ConfigTest::test_load_bind_mount_relative_path PASSED [ 70%]

tests/unit/config/config_test.py::ConfigTest::test_load_bind_mount_relative_path_with_tilde PASSED [ 71%]

tests/unit/config/config_test.py::ConfigTest::test_load_build_labels_dict PASSED [ 71%]

tests/unit/config/config_test.py::ConfigTest::test_load_build_labels_list PASSED [ 71%]

tests/unit/config/config_test.py::ConfigTest::test_load_config_custom_resource_names PASSED [ 71%]

tests/unit/config/config_test.py::ConfigTest::test_load_config_dockerfile_without_build_raises_error_v1 PASSED [ 71%]

tests/unit/config/config_test.py::ConfigTest::test_load_config_invalid_service_names PASSED [ 71%]

tests/unit/config/config_test.py::ConfigTest::test_load_config_invalid_service_names_v2 PASSED [ 71%]

tests/unit/config/config_test.py::ConfigTest::test_load_config_link_local_ips_network PASSED [ 71%]

tests/unit/config/config_test.py::ConfigTest::test_load_config_service_labels PASSED [ 71%]

tests/unit/config/config_test.py::ConfigTest::test_load_config_volume_and_network_labels PASSED [ 71%]

tests/unit/config/config_test.py::ConfigTest::test_load_configs PASSED   [ 71%]

tests/unit/config/config_test.py::ConfigTest::test_load_configs_multi_file PASSED [ 72%]

tests/unit/config/config_test.py::ConfigTest::test_load_dockerfile_without_context PASSED [ 72%]

tests/unit/config/config_test.py::ConfigTest::test_load_errors_on_uppercase_with_no_image PASSED [ 72%]

tests/unit/config/config_test.py::ConfigTest::test_load_invalid_service_definition PASSED [ 72%]

tests/unit/config/config_test.py::ConfigTest::test_load_mixed_extends_resolution PASSED [ 72%]

tests/unit/config/config_test.py::ConfigTest::test_load_secrets PASSED   [ 72%]

tests/unit/config/config_test.py::ConfigTest::test_load_secrets_multi_file PASSED [ 72%]

tests/unit/config/config_test.py::ConfigTest::test_load_service_with_name_version PASSED [ 72%]

tests/unit/config/config_test.py::ConfigTest::test_load_sorts_in_dependency_order PASSED [ 72%]

tests/unit/config/config_test.py::ConfigTest::test_load_throws_error_when_not_dict PASSED [ 72%]

tests/unit/config/config_test.py::ConfigTest::test_load_throws_error_when_not_dict_v2 PASSED [ 72%]

tests/unit/config/config_test.py::ConfigTest::test_load_throws_error_with_invalid_network_fields PASSED [ 72%]

tests/unit/config/config_test.py::ConfigTest::test_load_v2 PASSED        [ 73%]

tests/unit/config/config_test.py::ConfigTest::test_load_with_buildargs PASSED [ 73%]

tests/unit/config/config_test.py::ConfigTest::test_load_with_empty_build_args PASSED [ 73%]

tests/unit/config/config_test.py::ConfigTest::test_load_with_extensions PASSED [ 73%]

tests/unit/config/config_test.py::ConfigTest::test_load_with_invalid_field_name PASSED [ 73%]

tests/unit/config/config_test.py::ConfigTest::test_load_with_invalid_field_name_v1 PASSED [ 73%]

tests/unit/config/config_test.py::ConfigTest::test_load_with_multiple_files_and_empty_base PASSED [ 73%]

tests/unit/config/config_test.py::ConfigTest::test_load_with_multiple_files_and_empty_base_v2 PASSED [ 73%]

tests/unit/config/config_test.py::ConfigTest::test_load_with_multiple_files_and_empty_override PASSED [ 73%]

tests/unit/config/config_test.py::ConfigTest::test_load_with_multiple_files_and_empty_override_v2 PASSED [ 73%]

tests/unit/config/config_test.py::ConfigTest::test_load_with_multiple_files_and_extends_in_override_file PASSED [ 73%]

tests/unit/config/config_test.py::ConfigTest::test_load_with_multiple_files_and_invalid_override PASSED [ 74%]

tests/unit/config/config_test.py::ConfigTest::test_load_with_multiple_files_mismatched_networks_format PASSED [ 74%]

tests/unit/config/config_test.py::ConfigTest::test_load_with_multiple_files_mismatched_networks_format_inverse_order PASSED [ 74%]

tests/unit/config/config_test.py::ConfigTest::test_load_with_multiple_files_v1 PASSED [ 74%]

tests/unit/config/config_test.py::ConfigTest::test_load_with_multiple_files_v2 PASSED [ 74%]

tests/unit/config/config_test.py::ConfigTest::test_load_with_multiple_files_v3_2 PASSED [ 74%]

tests/unit/config/config_test.py::ConfigTest::test_load_yaml_with_bom PASSED [ 74%]

tests/unit/config/config_test.py::ConfigTest::test_load_yaml_with_yaml_error PASSED [ 74%]

tests/unit/config/config_test.py::ConfigTest::test_logs_warning_for_boolean_in_environment PASSED [ 74%]

tests/unit/config/config_test.py::ConfigTest::test_merge_blkio_config PASSED [ 74%]

tests/unit/config/config_test.py::ConfigTest::test_merge_configs_override PASSED [ 74%]

tests/unit/config/config_test.py::ConfigTest::test_merge_credential_spec PASSED [ 75%]

tests/unit/config/config_test.py::ConfigTest::test_merge_depends_on_mixed_syntax PASSED [ 75%]

tests/unit/config/config_test.py::ConfigTest::test_merge_depends_on_no_override PASSED [ 75%]

tests/unit/config/config_test.py::ConfigTest::test_merge_deploy PASSED   [ 75%]

tests/unit/config/config_test.py::ConfigTest::test_merge_deploy_override PASSED [ 75%]

tests/unit/config/config_test.py::ConfigTest::test_merge_device_cgroup_rules PASSED [ 75%]

tests/unit/config/config_test.py::ConfigTest::test_merge_different_configs PASSED [ 75%]

tests/unit/config/config_test.py::ConfigTest::test_merge_different_secrets PASSED [ 75%]

tests/unit/config/config_test.py::ConfigTest::test_merge_extra_hosts PASSED [ 75%]

tests/unit/config/config_test.py::ConfigTest::test_merge_healthcheck_config PASSED [ 75%]

tests/unit/config/config_test.py::ConfigTest::test_merge_healthcheck_override_disables PASSED [ 75%]

tests/unit/config/config_test.py::ConfigTest::test_merge_healthcheck_override_enables PASSED [ 75%]

tests/unit/config/config_test.py::ConfigTest::test_merge_isolation PASSED [ 76%]

tests/unit/config/config_test.py::ConfigTest::test_merge_logging_v1 PASSED [ 76%]

tests/unit/config/config_test.py::ConfigTest::test_merge_logging_v2 PASSED [ 76%]

tests/unit/config/config_test.py::ConfigTest::test_merge_logging_v2_no_base PASSED [ 76%]

tests/unit/config/config_test.py::ConfigTest::test_merge_logging_v2_no_base_driver PASSED [ 76%]

tests/unit/config/config_test.py::ConfigTest::test_merge_logging_v2_no_drivers PASSED [ 76%]

tests/unit/config/config_test.py::ConfigTest::test_merge_logging_v2_no_override PASSED [ 76%]

tests/unit/config/config_test.py::ConfigTest::test_merge_logging_v2_no_override_options PASSED [ 76%]

tests/unit/config/config_test.py::ConfigTest::test_merge_logging_v2_override_driver PASSED [ 76%]

tests/unit/config/config_test.py::ConfigTest::test_merge_mixed_ports PASSED [ 76%]

tests/unit/config/config_test.py::ConfigTest::test_merge_pid PASSED      [ 76%]

tests/unit/config/config_test.py::ConfigTest::test_merge_scale PASSED    [ 77%]

tests/unit/config/config_test.py::ConfigTest::test_merge_secrets_override PASSED [ 77%]

tests/unit/config/config_test.py::ConfigTest::test_merge_service_dicts_from_files_with_extends_in_base PASSED [ 77%]

tests/unit/config/config_test.py::ConfigTest::test_merge_service_dicts_from_files_with_extends_in_override PASSED [ 77%]

tests/unit/config/config_test.py::ConfigTest::test_merge_service_dicts_heterogeneous PASSED [ 77%]

tests/unit/config/config_test.py::ConfigTest::test_merge_service_dicts_heterogeneous_2 PASSED [ 77%]

tests/unit/config/config_test.py::ConfigTest::test_merge_service_dicts_heterogeneous_volumes PASSED [ 77%]

tests/unit/config/config_test.py::ConfigTest::test_merge_service_dicts_ports_sorting PASSED [ 77%]

tests/unit/config/config_test.py::ConfigTest::test_merge_storage_opt PASSED [ 77%]

tests/unit/config/config_test.py::ConfigTest::test_named_volume_config_empty PASSED [ 77%]

tests/unit/config/config_test.py::ConfigTest::test_named_volume_invalid_type_list PASSED [ 77%]

tests/unit/config/config_test.py::ConfigTest::test_named_volume_numeric_driver_opt PASSED [ 77%]

tests/unit/config/config_test.py::ConfigTest::test_networks_invalid_type_list PASSED [ 78%]

tests/unit/config/config_test.py::ConfigTest::test_normalize_dns_options PASSED [ 78%]

tests/unit/config/config_test.py::ConfigTest::test_oom_score_adj_option PASSED [ 78%]

tests/unit/config/config_test.py::ConfigTest::test_runtime_option PASSED [ 78%]

tests/unit/config/config_test.py::ConfigTest::test_service_volume_invalid_config PASSED [ 78%]

tests/unit/config/config_test.py::ConfigTest::test_swappiness_option PASSED [ 78%]

tests/unit/config/config_test.py::ConfigTest::test_tmpfs_option PASSED   [ 78%]

tests/unit/config/config_test.py::ConfigTest::test_undeclared_volume_v1 PASSED [ 78%]

tests/unit/config/config_test.py::ConfigTest::test_undeclared_volume_v2 PASSED [ 78%]

tests/unit/config/config_test.py::ConfigTest::test_unsupported_version PASSED [ 78%]

tests/unit/config/config_test.py::ConfigTest::test_v1_file_version PASSED [ 78%]

tests/unit/config/config_test.py::ConfigTest::test_v1_file_with_version_is_invalid PASSED [ 79%]

tests/unit/config/config_test.py::ConfigTest::test_valid_config_oneof_string_or_list PASSED [ 79%]

tests/unit/config/config_test.py::ConfigTest::test_valid_config_which_allows_two_type_definitions PASSED [ 79%]

tests/unit/config/config_test.py::ConfigTest::test_valid_versions PASSED [ 79%]

tests/unit/config/config_test.py::ConfigTest::test_validate_extra_hosts_invalid PASSED [ 79%]

tests/unit/config/config_test.py::ConfigTest::test_validate_extra_hosts_invalid_list PASSED [ 79%]

tests/unit/config/config_test.py::ConfigTest::test_version_1_is_invalid PASSED [ 79%]

tests/unit/config/config_test.py::ConfigTest::test_volume_invalid_driver_opt PASSED [ 79%]

tests/unit/config/config_test.py::ConfigTest::test_volume_mode_override PASSED [ 79%]

tests/unit/config/config_test.py::ConfigTest::test_volumes_long_syntax PASSED [ 79%]

tests/unit/config/config_test.py::ConfigTest::test_wrong_version_type PASSED [ 79%]

tests/unit/config/config_test.py::NetworkModeTest::test_network_mode_container PASSED [ 79%]

tests/unit/config/config_test.py::NetworkModeTest::test_network_mode_container_v1 PASSED [ 80%]

tests/unit/config/config_test.py::NetworkModeTest::test_network_mode_plus_networks_is_invalid PASSED [ 80%]

tests/unit/config/config_test.py::NetworkModeTest::test_network_mode_service PASSED [ 80%]

tests/unit/config/config_test.py::NetworkModeTest::test_network_mode_service_nonexistent PASSED [ 80%]

tests/unit/config/config_test.py::NetworkModeTest::test_network_mode_service_v1 PASSED [ 80%]

tests/unit/config/config_test.py::NetworkModeTest::test_network_mode_standard PASSED [ 80%]

tests/unit/config/config_test.py::NetworkModeTest::test_network_mode_standard_v1 PASSED [ 80%]

tests/unit/config/config_test.py::PortsTest::test_config_invalid_expose_format_validation PASSED [ 80%]

tests/unit/config/config_test.py::PortsTest::test_config_invalid_expose_type_validation PASSED [ 80%]

tests/unit/config/config_test.py::PortsTest::test_config_invalid_ports_format_validation PASSED [ 80%]

tests/unit/config/config_test.py::PortsTest::test_config_invalid_ports_type_validation PASSED [ 80%]

tests/unit/config/config_test.py::PortsTest::test_config_non_unique_expose_validation PASSED [ 81%]

tests/unit/config/config_test.py::PortsTest::test_config_non_unique_ports_validation PASSED [ 81%]

tests/unit/config/config_test.py::PortsTest::test_config_valid_expose_format_validation PASSED [ 81%]

tests/unit/config/config_test.py::PortsTest::test_config_valid_ports_format_validation PASSED [ 81%]

tests/unit/config/config_test.py::SubnetTest::test_config_invalid_subnet_format_validation PASSED [ 81%]

tests/unit/config/config_test.py::SubnetTest::test_config_invalid_subnet_type_validation PASSED [ 81%]

tests/unit/config/config_test.py::SubnetTest::test_config_valid_subnet_format_validation PASSED [ 81%]

tests/unit/config/config_test.py::InterpolationTest::test_compatibility_mode_load PASSED [ 81%]

tests/unit/config/config_test.py::InterpolationTest::test_compatibility_mode_warnings PASSED [ 81%]

tests/unit/config/config_test.py::InterpolationTest::test_config_file_with_environment_file PASSED [ 81%]

tests/unit/config/config_test.py::InterpolationTest::test_config_file_with_environment_variable PASSED [ 81%]

tests/unit/config/config_test.py::InterpolationTest::test_config_file_with_environment_variable_with_defaults PASSED [ 81%]

tests/unit/config/config_test.py::InterpolationTest::test_config_file_with_options_environment_file PASSED [ 82%]

tests/unit/config/config_test.py::InterpolationTest::test_interpolation_configs_section PASSED [ 82%]

tests/unit/config/config_test.py::InterpolationTest::test_interpolation_secrets_section PASSED [ 82%]

tests/unit/config/config_test.py::InterpolationTest::test_invalid_interpolation PASSED [ 82%]

tests/unit/config/config_test.py::InterpolationTest::test_unset_variable_produces_warning PASSED [ 82%]

tests/unit/config/config_test.py::VolumeConfigTest::test_absolute_posix_path_does_not_expand PASSED [ 82%]

tests/unit/config/config_test.py::VolumeConfigTest::test_absolute_windows_path_does_not_expand PASSED [ 82%]

tests/unit/config/config_test.py::VolumeConfigTest::test_home_directory_with_driver_does_not_expand PASSED [ 82%]

tests/unit/config/config_test.py::VolumeConfigTest::test_name_does_not_expand PASSED [ 82%]

tests/unit/config/config_test.py::VolumeConfigTest::test_no_binding PASSED [ 82%]

tests/unit/config/config_test.py::VolumeConfigTest::test_relative_path_does_expand_posix PASSED [ 82%]

tests/unit/config/config_test.py::VolumeConfigTest::test_relative_path_does_expand_windows SKIPPED [ 83%]

tests/unit/config/config_test.py::VolumeConfigTest::test_volume_binding_with_environment_variable PASSED [ 83%]

tests/unit/config/config_test.py::VolumeConfigTest::test_volume_binding_with_home PASSED [ 83%]

tests/unit/config/config_test.py::VolumeConfigTest::test_volume_path_with_non_ascii_directory PASSED [ 83%]

tests/unit/config/config_test.py::VolumeConfigTest::test_volumes_order_is_preserved PASSED [ 83%]

tests/unit/config/config_test.py::MergeVolumesTest::test_add_explicit_path PASSED [ 83%]

tests/unit/config/config_test.py::MergeVolumesTest::test_empty PASSED    [ 83%]

tests/unit/config/config_test.py::MergeVolumesTest::test_no_base PASSED  [ 83%]

tests/unit/config/config_test.py::MergeVolumesTest::test_no_override PASSED [ 83%]

tests/unit/config/config_test.py::MergeVolumesTest::test_override_explicit_path PASSED [ 83%]

tests/unit/config/config_test.py::MergeVolumesTest::test_remove_explicit_path PASSED [ 83%]

tests/unit/config/config_test.py::MergeDevicesTest::test_add_explicit_path PASSED [ 83%]

tests/unit/config/config_test.py::MergeDevicesTest::test_empty PASSED    [ 84%]

tests/unit/config/config_test.py::MergeDevicesTest::test_no_base PASSED  [ 84%]

tests/unit/config/config_test.py::MergeDevicesTest::test_no_override PASSED [ 84%]

tests/unit/config/config_test.py::MergeDevicesTest::test_override_explicit_path PASSED [ 84%]

tests/unit/config/config_test.py::MergeDevicesTest::test_remove_explicit_path PASSED [ 84%]

tests/unit/config/config_test.py::BuildOrImageMergeTest::test_merge_build_or_image_no_override PASSED [ 84%]

tests/unit/config/config_test.py::BuildOrImageMergeTest::test_merge_build_or_image_override_with_other PASSED [ 84%]

tests/unit/config/config_test.py::BuildOrImageMergeTest::test_merge_build_or_image_override_with_same PASSED [ 84%]

tests/unit/config/config_test.py::MergePortsTest::test_add_item PASSED   [ 84%]

tests/unit/config/config_test.py::MergePortsTest::test_duplicate_port_mappings PASSED [ 84%]

tests/unit/config/config_test.py::MergePortsTest::test_empty PASSED      [ 84%]

tests/unit/config/config_test.py::MergePortsTest::test_no_base PASSED    [ 85%]

tests/unit/config/config_test.py::MergePortsTest::test_no_override PASSED [ 85%]

tests/unit/config/config_test.py::MergeNetworksTest::test_add_item PASSED [ 85%]

tests/unit/config/config_test.py::MergeNetworksTest::test_all_properties PASSED [ 85%]

tests/unit/config/config_test.py::MergeNetworksTest::test_empty PASSED   [ 85%]

tests/unit/config/config_test.py::MergeNetworksTest::test_network_has_none_value PASSED [ 85%]

tests/unit/config/config_test.py::MergeNetworksTest::test_no_base PASSED [ 85%]

tests/unit/config/config_test.py::MergeNetworksTest::test_no_network_name_overrides PASSED [ 85%]

tests/unit/config/config_test.py::MergeNetworksTest::test_no_network_overrides PASSED [ 85%]

tests/unit/config/config_test.py::MergeNetworksTest::test_no_override PASSED [ 85%]

tests/unit/config/config_test.py::MergeStringsOrListsTest::test_add_list PASSED [ 85%]

tests/unit/config/config_test.py::MergeStringsOrListsTest::test_add_string PASSED [ 85%]

tests/unit/config/config_test.py::MergeStringsOrListsTest::test_no_base PASSED [ 86%]

tests/unit/config/config_test.py::MergeStringsOrListsTest::test_no_override PASSED [ 86%]

tests/unit/config/config_test.py::MergeLabelsTest::test_add_explicit_value PASSED [ 86%]

tests/unit/config/config_test.py::MergeLabelsTest::test_empty PASSED     [ 86%]

tests/unit/config/config_test.py::MergeLabelsTest::test_no_base PASSED   [ 86%]

tests/unit/config/config_test.py::MergeLabelsTest::test_no_override PASSED [ 86%]

tests/unit/config/config_test.py::MergeLabelsTest::test_override_explicit_value PASSED [ 86%]

tests/unit/config/config_test.py::MergeLabelsTest::test_remove_explicit_value PASSED [ 86%]

tests/unit/config/config_test.py::MergeBuildTest::test_empty_base PASSED [ 86%]

tests/unit/config/config_test.py::MergeBuildTest::test_empty_override PASSED [ 86%]

tests/unit/config/config_test.py::MergeBuildTest::test_full PASSED       [ 86%]

tests/unit/config/config_test.py::MemoryOptionsTest::test_memswap_can_be_a_string PASSED [ 87%]

tests/unit/config/config_test.py::MemoryOptionsTest::test_validation_fails_with_just_memswap_limit PASSED [ 87%]

tests/unit/config/config_test.py::MemoryOptionsTest::test_validation_with_correct_memswap_values PASSED [ 87%]

tests/unit/config/config_test.py::EnvTest::test_environment_overrides_env_file PASSED [ 87%]

tests/unit/config/config_test.py::EnvTest::test_parse_environment_as_dict PASSED [ 87%]

tests/unit/config/config_test.py::EnvTest::test_parse_environment_as_list PASSED [ 87%]

tests/unit/config/config_test.py::EnvTest::test_parse_environment_empty PASSED [ 87%]

tests/unit/config/config_test.py::EnvTest::test_parse_environment_invalid PASSED [ 87%]

tests/unit/config/config_test.py::EnvTest::test_resolve_build_args PASSED [ 87%]

tests/unit/config/config_test.py::EnvTest::test_resolve_environment PASSED [ 87%]

tests/unit/config/config_test.py::EnvTest::test_resolve_environment_from_env_file PASSED [ 87%]

tests/unit/config/config_test.py::EnvTest::test_resolve_environment_from_env_file_with_empty_values PASSED [ 87%]

tests/unit/config/config_test.py::EnvTest::test_resolve_environment_nonexistent_file PASSED [ 88%]

tests/unit/config/config_test.py::EnvTest::test_resolve_environment_with_multiple_env_files PASSED [ 88%]

tests/unit/config/config_test.py::EnvTest::test_resolve_path PASSED      [ 88%]

tests/unit/config/config_test.py::ExtendsTest::test_circular PASSED      [ 88%]

tests/unit/config/config_test.py::ExtendsTest::test_extended_service_with_invalid_config PASSED [ 88%]

tests/unit/config/config_test.py::ExtendsTest::test_extended_service_with_valid_config PASSED [ 88%]

tests/unit/config/config_test.py::ExtendsTest::test_extended_service_with_verbose_and_shorthand_way PASSED [ 88%]

tests/unit/config/config_test.py::ExtendsTest::test_extends PASSED       [ 88%]

tests/unit/config/config_test.py::ExtendsTest::test_extends_file_defaults_to_self PASSED [ 88%]

tests/unit/config/config_test.py::ExtendsTest::test_extends_same_file_optimization PASSED [ 88%]

tests/unit/config/config_test.py::ExtendsTest::test_extends_validation_empty_dictionary PASSED [ 88%]

tests/unit/config/config_test.py::ExtendsTest::test_extends_validation_invalid_key PASSED [ 89%]

tests/unit/config/config_test.py::ExtendsTest::test_extends_validation_missing_service_key PASSED [ 89%]

tests/unit/config/config_test.py::ExtendsTest::test_extends_validation_no_file_key_no_filename_set PASSED [ 89%]

tests/unit/config/config_test.py::ExtendsTest::test_extends_validation_sub_property_key PASSED [ 89%]

tests/unit/config/config_test.py::ExtendsTest::test_extends_validation_valid_config PASSED [ 89%]

tests/unit/config/config_test.py::ExtendsTest::test_extends_with_defined_version_passes PASSED [ 89%]

tests/unit/config/config_test.py::ExtendsTest::test_extends_with_depends_on PASSED [ 89%]

tests/unit/config/config_test.py::ExtendsTest::test_extends_with_environment_and_env_files PASSED [ 89%]

tests/unit/config/config_test.py::ExtendsTest::test_extends_with_healthcheck PASSED [ 89%]

tests/unit/config/config_test.py::ExtendsTest::test_extends_with_mixed_versions_is_error PASSED [ 89%]

tests/unit/config/config_test.py::ExtendsTest::test_extends_with_ports PASSED [ 89%]

tests/unit/config/config_test.py::ExtendsTest::test_extends_with_security_opt PASSED [ 89%]

tests/unit/config/config_test.py::ExtendsTest::test_invalid_links_in_extended_service PASSED [ 90%]

tests/unit/config/config_test.py::ExtendsTest::test_invalid_net_in_extended_service PASSED [ 90%]

tests/unit/config/config_test.py::ExtendsTest::test_invalid_volumes_from_in_extended_service PASSED [ 90%]

tests/unit/config/config_test.py::ExtendsTest::test_load_config_runs_interpolation_in_extended_service PASSED [ 90%]

tests/unit/config/config_test.py::ExtendsTest::test_load_throws_error_when_base_service_does_not_exist PASSED [ 90%]

tests/unit/config/config_test.py::ExtendsTest::test_merging_env_labels_ulimits PASSED [ 90%]

tests/unit/config/config_test.py::ExtendsTest::test_nested PASSED        [ 90%]

tests/unit/config/config_test.py::ExtendsTest::test_parent_build_path_dne PASSED [ 90%]

tests/unit/config/config_test.py::ExtendsTest::test_partial_service_config_in_extends_is_still_valid PASSED [ 90%]

tests/unit/config/config_test.py::ExtendsTest::test_self_referencing_file PASSED [ 90%]

tests/unit/config/config_test.py::ExtendsTest::test_volume_path PASSED   [ 90%]

tests/unit/config/config_test.py::ExpandPathTest::test_expand_path_absolute PASSED [ 91%]

tests/unit/config/config_test.py::ExpandPathTest::test_expand_path_normal PASSED [ 91%]

tests/unit/config/config_test.py::ExpandPathTest::test_expand_path_with_tilde PASSED [ 91%]

tests/unit/config/config_test.py::VolumePathTest::test_split_path_mapping_with_root_mount PASSED [ 91%]

tests/unit/config/config_test.py::VolumePathTest::test_split_path_mapping_with_windows_path PASSED [ 91%]

tests/unit/config/config_test.py::VolumePathTest::test_split_path_mapping_with_windows_path_in_container PASSED [ 91%]

tests/unit/config/config_test.py::BuildPathTest::test_absolute_path PASSED [ 91%]

tests/unit/config/config_test.py::BuildPathTest::test_from_file PASSED   [ 91%]

tests/unit/config/config_test.py::BuildPathTest::test_from_file_override_dir PASSED [ 91%]

tests/unit/config/config_test.py::BuildPathTest::test_invalid_url_in_build_path PASSED [ 91%]

tests/unit/config/config_test.py::BuildPathTest::test_nonexistent_path PASSED [ 91%]

tests/unit/config/config_test.py::BuildPathTest::test_relative_path PASSED [ 91%]

tests/unit/config/config_test.py::BuildPathTest::test_valid_url_in_build_path PASSED [ 92%]

tests/unit/config/config_test.py::HealthcheckTest::test_disable PASSED   [ 92%]

tests/unit/config/config_test.py::HealthcheckTest::test_disable_with_other_config_is_invalid PASSED [ 92%]

tests/unit/config/config_test.py::HealthcheckTest::test_healthcheck PASSED [ 92%]

tests/unit/config/config_test.py::HealthcheckTest::test_healthcheck_with_invalid_test PASSED [ 92%]

tests/unit/config/config_test.py::GetDefaultConfigFilesTestCase::test_get_config_path_default_file_in_basedir PASSED [ 92%]

tests/unit/config/config_test.py::GetDefaultConfigFilesTestCase::test_get_config_path_default_file_in_parent_dir PASSED [ 92%]

tests/unit/config/config_test.py::SerializeTest::test_denormalize_depends_on_v2_1 PASSED [ 92%]

tests/unit/config/config_test.py::SerializeTest::test_denormalize_depends_on_v3 PASSED [ 92%]

tests/unit/config/config_test.py::SerializeTest::test_denormalize_healthcheck PASSED [ 92%]

tests/unit/config/config_test.py::SerializeTest::test_denormalize_image_has_digest PASSED [ 92%]

tests/unit/config/config_test.py::SerializeTest::test_denormalize_image_no_digest PASSED [ 93%]

tests/unit/config/config_test.py::SerializeTest::test_serialize_bool_string PASSED [ 93%]

tests/unit/config/config_test.py::SerializeTest::test_serialize_configs PASSED [ 93%]

tests/unit/config/config_test.py::SerializeTest::test_serialize_escape_dollar_sign PASSED [ 93%]

tests/unit/config/config_test.py::SerializeTest::test_serialize_escape_dont_interpolate PASSED [ 93%]

tests/unit/config/config_test.py::SerializeTest::test_serialize_external_false PASSED [ 93%]

tests/unit/config/config_test.py::SerializeTest::test_serialize_ports PASSED [ 93%]

tests/unit/config/config_test.py::SerializeTest::test_serialize_ports_with_ext_ip PASSED [ 93%]

tests/unit/config/config_test.py::SerializeTest::test_serialize_secrets PASSED [ 93%]

tests/unit/config/config_test.py::SerializeTest::test_serialize_time PASSED [ 93%]

tests/unit/config/config_test.py::SerializeTest::test_serialize_unicode_values PASSED [ 93%]

tests/unit/config/environment_test.py::EnvironmentTest::test_env_vars_from_file_bom PASSED [ 93%]

tests/unit/config/environment_test.py::EnvironmentTest::test_env_vars_from_file_whitespace PASSED [ 94%]

tests/unit/config/environment_test.py::EnvironmentTest::test_get_boolean PASSED [ 94%]

tests/unit/config/environment_test.py::EnvironmentTest::test_get_simple PASSED [ 94%]

tests/unit/config/environment_test.py::EnvironmentTest::test_get_undefined PASSED [ 94%]

tests/unit/config/interpolation_test.py::test_interpolate_environment_variables_in_services PASSED [ 94%]

tests/unit/config/interpolation_test.py::test_interpolate_environment_variables_in_volumes PASSED [ 94%]

tests/unit/config/interpolation_test.py::test_interpolate_environment_variables_in_secrets PASSED [ 94%]

tests/unit/config/interpolation_test.py::test_interpolate_environment_services_convert_types_v2 PASSED [ 94%]

tests/unit/config/interpolation_test.py::test_interpolate_environment_services_convert_types_v3 PASSED [ 94%]

tests/unit/config/interpolation_test.py::test_interpolate_environment_services_convert_types_invalid PASSED [ 94%]

tests/unit/config/interpolation_test.py::test_interpolate_environment_network_convert_types PASSED [ 94%]

tests/unit/config/interpolation_test.py::test_interpolate_environment_external_resource_convert_types PASSED [ 95%]

tests/unit/config/interpolation_test.py::test_interpolate_service_name_uses_dot PASSED [ 95%]

tests/unit/config/interpolation_test.py::test_escaped_interpolation PASSED [ 95%]

tests/unit/config/interpolation_test.py::test_invalid_interpolation PASSED [ 95%]

tests/unit/config/interpolation_test.py::test_interpolate_missing_no_default PASSED [ 95%]

tests/unit/config/interpolation_test.py::test_interpolate_with_value PASSED [ 95%]

tests/unit/config/interpolation_test.py::test_interpolate_missing_with_default PASSED [ 95%]

tests/unit/config/interpolation_test.py::test_interpolate_with_empty_and_default_value PASSED [ 95%]

tests/unit/config/interpolation_test.py::test_interpolate_mandatory_values PASSED [ 95%]

tests/unit/config/interpolation_test.py::test_interpolate_mandatory_no_err_msg PASSED [ 95%]

tests/unit/config/interpolation_test.py::test_interpolate_mixed_separators PASSED [ 95%]

tests/unit/config/interpolation_test.py::test_unbraced_separators PASSED [ 95%]

tests/unit/config/interpolation_test.py::test_interpolate_unicode_values PASSED [ 96%]

tests/unit/config/interpolation_test.py::test_interpolate_no_fallthrough PASSED [ 96%]

tests/unit/config/sort_services_test.py::TestSortService::test_sort_service_dicts_1 PASSED [ 96%]

tests/unit/config/sort_services_test.py::TestSortService::test_sort_service_dicts_2 PASSED [ 96%]

tests/unit/config/sort_services_test.py::TestSortService::test_sort_service_dicts_3 PASSED [ 96%]

tests/unit/config/sort_services_test.py::TestSortService::test_sort_service_dicts_4 PASSED [ 96%]

tests/unit/config/sort_services_test.py::TestSortService::test_sort_service_dicts_5 PASSED [ 96%]

tests/unit/config/sort_services_test.py::TestSortService::test_sort_service_dicts_6 PASSED [ 96%]

tests/unit/config/sort_services_test.py::TestSortService::test_sort_service_dicts_7 PASSED [ 96%]

tests/unit/config/sort_services_test.py::TestSortService::test_sort_service_dicts_circular_imports PASSED [ 96%]

tests/unit/config/sort_services_test.py::TestSortService::test_sort_service_dicts_circular_imports_2 PASSED [ 96%]

tests/unit/config/sort_services_test.py::TestSortService::test_sort_service_dicts_circular_imports_3 PASSED [ 97%]

tests/unit/config/sort_services_test.py::TestSortService::test_sort_service_dicts_self_imports PASSED [ 97%]

tests/unit/config/sort_services_test.py::TestSortService::test_sort_service_dicts_depends_on_self PASSED [ 97%]

tests/unit/config/types_test.py::test_parse_extra_hosts_list PASSED      [ 97%]

tests/unit/config/types_test.py::test_parse_extra_hosts_dict PASSED      [ 97%]

tests/unit/config/types_test.py::TestServicePort::test_parse_dict PASSED [ 97%]

tests/unit/config/types_test.py::TestServicePort::test_parse_simple_target_port PASSED [ 97%]

tests/unit/config/types_test.py::TestServicePort::test_parse_complete_port_definition PASSED [ 97%]

tests/unit/config/types_test.py::TestServicePort::test_parse_ext_ip_no_published_port PASSED [ 97%]

tests/unit/config/types_test.py::TestServicePort::test_repr_published_port_0 PASSED [ 97%]

tests/unit/config/types_test.py::TestServicePort::test_parse_port_range PASSED [ 97%]

tests/unit/config/types_test.py::TestServicePort::test_parse_port_publish_range PASSED [ 97%]

tests/unit/config/types_test.py::TestServicePort::test_parse_invalid_port PASSED [ 98%]

tests/unit/config/types_test.py::TestServicePort::test_parse_invalid_publish_range PASSED [ 98%]

tests/unit/config/types_test.py::TestVolumeSpec::test_parse_volume_spec_only_one_path PASSED [ 98%]

tests/unit/config/types_test.py::TestVolumeSpec::test_parse_volume_spec_internal_and_external PASSED [ 98%]

tests/unit/config/types_test.py::TestVolumeSpec::test_parse_volume_spec_with_mode PASSED [ 98%]

tests/unit/config/types_test.py::TestVolumeSpec::test_parse_volume_spec_too_many_parts PASSED [ 98%]

tests/unit/config/types_test.py::TestVolumeSpec::test_parse_volume_windows_absolute_path_normalized PASSED [ 98%]

tests/unit/config/types_test.py::TestVolumeSpec::test_parse_volume_windows_absolute_path_native PASSED [ 98%]

tests/unit/config/types_test.py::TestVolumeSpec::test_parse_volume_windows_internal_path_normalized PASSED [ 98%]

tests/unit/config/types_test.py::TestVolumeSpec::test_parse_volume_windows_internal_path_native PASSED [ 98%]

tests/unit/config/types_test.py::TestVolumeSpec::test_parse_volume_windows_just_drives_normalized PASSED [ 98%]

tests/unit/config/types_test.py::TestVolumeSpec::test_parse_volume_windows_just_drives_native PASSED [ 99%]

tests/unit/config/types_test.py::TestVolumeSpec::test_parse_volume_windows_mixed_notations_normalized PASSED [ 99%]

tests/unit/config/types_test.py::TestVolumeSpec::test_parse_volume_windows_mixed_notations_native PASSED [ 99%]

tests/unit/config/types_test.py::TestVolumesFromSpec::test_parse_v1_from_service PASSED [ 99%]

tests/unit/config/types_test.py::TestVolumesFromSpec::test_parse_v1_from_container PASSED [ 99%]

tests/unit/config/types_test.py::TestVolumesFromSpec::test_parse_v1_invalid PASSED [ 99%]

tests/unit/config/types_test.py::TestVolumesFromSpec::test_parse_v2_from_service PASSED [ 99%]

tests/unit/config/types_test.py::TestVolumesFromSpec::test_parse_v2_from_service_with_mode PASSED [ 99%]

tests/unit/config/types_test.py::TestVolumesFromSpec::test_parse_v2_from_container PASSED [ 99%]

tests/unit/config/types_test.py::TestVolumesFromSpec::test_parse_v2_from_container_with_mode PASSED [ 99%]

tests/unit/config/types_test.py::TestVolumesFromSpec::test_parse_v2_invalid_type PASSED [ 99%]

tests/unit/config/types_test.py::TestVolumesFromSpec::test_parse_v2_invalid PASSED [100%]



---------- coverage: platform linux2, python 2.7.13-final-0 ----------

Name                              Stmts   Miss Branch BrPart  Cover   Missing

-----------------------------------------------------------------------------

compose/__init__.py                   3      0      0      0   100%

compose/__main__.py                   4      4      0      0     0%   1-6

compose/bundle.py                   144     21     60      5    84%   45, 50-51, 56-57, 75-78, 81, 103-109, 130-131, 141-146, 149, 80->81, 100->103, 118->135, 125->135, 148->149

compose/cli/__init__.py               0      0      0      0   100%

compose/cli/colors.py                23      2     10      2    88%   37-38, 36->37, 48->exit

compose/cli/command.py              104     14     32      5    83%   71-81, 121-126, 177, 200, 70->71, 120->121, 165->168, 176->177, 197->200

compose/cli/docker_client.py         75      5     24      2    93%   24, 98-99, 107, 123, 106->107, 122->123

compose/cli/docopt_command.py        38      4      8      2    87%   13-14, 29, 35, 28->29, 34->35

compose/cli/errors.py               100     26     34      6    67%   47-48, 62-65, 70-79, 105-106, 123, 125, 127-131, 136, 141-148, 46->47, 61->62, 103->105, 122->123, 124->125, 126->127

compose/cli/formatter.py             37      3      8      1    91%   13, 22-23, 12->13

compose/cli/log_printer.py          149     10     53      6    91%   76, 103, 110-115, 167, 176, 229-232, 262, 43->exit, 75->76, 98->103, 174->176, 228->229, 237->243

compose/cli/main.py                 696     91    290     41    84%   84-85, 87-88, 169, 330, 362-364, 447, 507, 511, 516-517, 527-556, 568, 586-588, 592, 659-660, 698-699, 717, 738-739, 751, 774, 792, 839, 1071, 1080, 1109-1118, 1158-1161, 1169-1173, 1175-1180, 1203, 1225-1254, 1261-1262, 1264-1266, 1281, 1287, 1471, 1489, 1505, 1509-1510, 1521, 1526, 1529, 1555, 1574-1576, 1586, 1597, 61->64, 83->84, 86->87, 168->169, 329->330, 361->362, 446->447, 506->507, 510->511, 521->527, 565->568, 585->586, 591->592, 657->659, 716->717, 737->738, 750->751, 773->774, 829->839, 831->exit, 1070->1071, 1079->1080, 1168->1169, 1174->1175, 1202->1203, 1260->1261, 1263->1264, 1280->1281, 1286->1287, 1470->1471, 1488->1489, 1504->1505, 1520->1521, 1525->1526, 1528->1529, 1547->exit, 1554->1555, 1568->1576, 1570->1574, 1585->1586, 1595->1597

compose/cli/signals.py               23      0      4      2    93%   36->exit, 43->exit

compose/cli/utils.py                 81     28     18      4    60%   36-45, 53-55, 62-68, 76, 90-103, 109, 127-128, 138, 151-154, 88->90, 108->109, 137->138, 150->151

compose/cli/verbose_proxy.py         35     12     10      0    69%   36-39, 42-47, 50-60

compose/config/__init__.py           13      0      0      0   100%

compose/config/config.py            826     28    388     18    95%   266, 508, 578, 714, 757, 812-830, 952-953, 959, 979, 982, 1335, 1366, 1412, 265->266, 577->578, 709->713, 713->714, 756->757, 778->exit, 809->812, 936->938, 938->942, 957->959, 978->979, 981->982, 993->1002, 1015->1017, 1017->1020, 1332->1335, 1365->1366, 1408->1412

compose/config/environment.py        96      7     34      4    92%   41, 98-101, 114, 121, 40->41, 97->98, 113->114, 120->121

compose/config/errors.py             25      2      0      0    92%   36-40

compose/config/interpolation.py     148      7     62      4    94%   66, 148, 196, 222, 227-229, 121->exit, 146->148, 195->196, 221->222

compose/config/serialize.py          97      1     50      2    98%   76, 75->76, 82->85

compose/config/sort_services.py      44      1     18      1    97%   57, 56->57

compose/config/types.py             291     22    112     17    90%   54, 90, 113, 149, 171, 258-259, 267, 286, 301, 363-364, 372-373, 377-378, 441, 445, 486, 493-494, 502, 53->54, 71->79, 89->90, 112->113, 118->exit, 148->149, 170->171, 257->258, 266->267, 285->286, 298->301, 361->366, 440->441, 444->445, 484->489, 485->486, 501->502

compose/config/validation.py        254     14    140     12    92%   219, 249, 299-300, 318-319, 341, 363, 469-471, 496-498, 525, 218->219, 248->249, 289->299, 317->318, 335->338, 338->341, 362->363, 404->377, 425->exit, 467->469, 495->496, 524->525

compose/const.py                     39      0      0      0   100%

compose/container.py                193      8     48      7    94%   98, 105, 151, 153, 262, 265, 297, 320, 97->98, 104->105, 150->151, 152->153, 236->235, 303->exit, 319->320

compose/errors.py                    17      1      0      0    94%   12

compose/network.py                  190     19     92      5    87%   184, 186-200, 206, 224, 226, 183->184, 185->186, 205->206, 223->224, 225->226

compose/parallel.py                 199      2     56      1    99%   187, 326, 325->326

compose/progress_stream.py           87     12     44     10    82%   40, 71, 74, 80, 85, 90-91, 116, 122-125, 39->40, 42->46, 53->57, 70->71, 73->74, 79->80, 84->85, 89->90, 112->116, 121->122

compose/project.py                  450     31    182     14    92%   64, 161, 217-218, 259-260, 370-371, 374-379, 393-396, 449, 500, 504, 531, 634-638, 641, 659, 790-791, 797-800, 855, 61->64, 157->161, 336->338, 368->370, 373->374, 392->393, 448->449, 499->500, 503->504, 530->531, 640->641, 658->659, 709->exit, 793->800

compose/service.py                  920     57    406     30    92%   67, 278-279, 300, 373-376, 424-429, 435-437, 477-478, 493, 496, 514, 581, 626-629, 737, 956-957, 977-978, 1079, 1126, 1187, 1251-1266, 1306, 1345-1349, 1537, 1541, 1699, 1785, 1826, 1839, 1843-1844, 1848-1849, 64->67, 223->exit, 276->278, 299->300, 434->435, 476->477, 492->493, 495->496, 513->514, 571->581, 732->737, 955->956, 976->977, 1078->1079, 1125->1126, 1186->1187, 1305->1306, 1342->1345, 1536->1537, 1540->1541, 1589->exit, 1597->1596, 1635->1632, 1698->1699, 1784->1785, 1810->1812, 1825->1826, 1838->1839, 1842->1843, 1847->1848

compose/state.py                      0      0      0      0   100%

compose/timeparse.py                 22      0      4      0   100%

compose/utils.py                    117      8     42      5    92%   26, 75-79, 125, 135, 161, 168, 171, 25->26, 124->125, 134->135, 167->168, 169->171

compose/version.py                    6      0      0      0   100%

compose/volume.py                   126      4     44      3    95%   150, 200, 211-212, 141->150, 199->200, 209->211

-----------------------------------------------------------------------------

TOTAL                              5672    444   2273    209    90%

Coverage HTML written to dir coverage-html



=========================== short test summary info ============================

XFAIL tests/integration/service_test.py::ServiceTest::test_create_container_with_cpu_rt

  not supported by kernel

XFAIL tests/integration/service_test.py::ServiceTest::test_create_container_with_storage_opt

  Not supported on most drivers

SKIP [1] tests/acceptance/cli_test.py:2416: race condition between up and logs

SKIP [1] tests/unit/cli/command_test.py:39: windows separator

SKIP [1] tests/acceptance/cli_test.py:2389: race condition between up and logs

SKIP [1] tests/unit/cli/errors_test.py:80: Needs pywin32

SKIP [1] /code/tests/integration/testcases.py:167: This daemon does not support the 'nvidia'' runtime

SKIP [1] tests/unit/cli/errors_test.py:70: Needs pywin32

SKIP [1] tests/unit/cli/errors_test.py:90: Needs pywin32

SKIP [1] tests/integration/service_test.py:150: cpu_percent is not supported for Linux

SKIP [1] tests/acceptance/cli_test.py:2437: race condition between up and logs

SKIP [1] tests/unit/config/config_test.py:3778: windows paths

SKIP [1] tests/integration/service_test.py:1674: Broken on 1.11.0 - 17.03.0



======= 1132 passed, 11 skipped, 2 xfailed, 3 xpassed in 829.63 seconds ========

___________________________________ summary ____________________________________

  py27: commands succeeded

  congratulations :)

+ on_exit
+ [[ 0 != \0 ]]
+ docker rm -vf compose-dind-19.03.5-jenkins-compose-ndeloof-28
compose-dind-19.03.5-jenkins-compose-ndeloof-28
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] node
Running on ubuntu-1804-overlay2 (i-0b6eb4af357135099) in /home/ubuntu/workspace/compose_ndeloof
[Pipeline] {
[Pipeline] stage
[Pipeline] { (debian 19.03.5 py37)
[Pipeline] checkout
using credential sf-release-bot.github.ssh
Fetching changes from the remote Git repository
Fetching without tags
Checking out Revision f0d8706f3473426bfcc85197834187726323acf2 (ndeloof)
Commit message: "WiP"
 > git rev-parse --is-inside-work-tree # timeout=10
 > git config remote.origin.url git@github.com:docker/compose.git # timeout=10
Fetching upstream changes from git@github.com:docker/compose.git
 > git --version # timeout=10
using GIT_SSH to set credentials docker-jenkins user on github.com
 > git fetch --no-tags --progress -- git@github.com:docker/compose.git +refs/heads/ndeloof:refs/remotes/origin/ndeloof
 > git config core.sparsecheckout # timeout=10
 > git checkout -f f0d8706f3473426bfcc85197834187726323acf2
[Pipeline] unstash
Unstashed file(s) from https://corp-us-east-1-jenkins-k8s-maste-jenkinsartifacts-1lzm7adht5e1j.s3.amazonaws.com/public/compose/ndeloof/28/stashes/debian.tgz
[Pipeline] sh
+ docker load -i debian.tar
Loaded image: compose:debian
[Pipeline] sh
+ pwd
+ docker run -t --rm --privileged --volume=/home/ubuntu/workspace/compose_ndeloof/.git:/code/.git --volume=/var/run/docker.sock:/var/run/docker.sock -e TAG=compose:debian -e DOCKER_VERSIONS=19.03.5 -e BUILD_NUMBER=jenkins-compose-ndeloof-28 -e PY_TEST_VERSIONS=py37 --entrypoint=script/test/ci compose:debian --verbose
+ docker version
Client: Docker Engine - Community
 Version:           18.09.7
 API version:       1.39
 Go version:        go1.10.8
 Git commit:        2d0083d
 Built:             Thu Jun 27 17:54:15 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.2
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.8
  Git commit:       6a30dfc
  Built:            Thu Aug 29 05:27:45 2019
  OS/Arch:          linux/amd64
  Experimental:     true
 containerd:
  Version:          1.2.6
  GitCommit:        894b81a4b802e4eb2a91d1ce216b8817763c29fb
 runc:
  Version:          1.0.0-rc8
  GitCommit:        425e105d5a03fabd737a126ad93d62a9eeede87f
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683
+ export DOCKER_VERSIONS=19.03.5
+ DOCKER_VERSIONS=19.03.5
+ STORAGE_DRIVER=overlay
+ export DOCKER_DAEMON_ARGS=--storage-driver=overlay
+ DOCKER_DAEMON_ARGS=--storage-driver=overlay
++ hostname
+ GIT_VOLUME=--volumes-from=837cd8e9d927
+ . script/test/all
++ set -e
++ echo 'Running lint checks'
Running lint checks
++ docker run --rm --tty --volumes-from=837cd8e9d927 compose:debian tox -e pre-commit
pre-commit installed: aspy.yaml==1.3.0,cfgv==2.0.1,identify==1.4.7,importlib-metadata==1.1.0,more-itertools==8.0.0,nodeenv==1.3.3,pre-commit==1.20.0,PyYAML==5.2,six==1.13.0,toml==0.10.0,virtualenv==16.7.8,zipp==0.6.0

pre-commit runtests: PYTHONHASHSEED='321158858'

pre-commit runtests: commands[0] | pre-commit install

pre-commit installed at .git/hooks/pre-commit

pre-commit runtests: commands[1] | pre-commit run --all-files

[WARNING] Unexpected key(s) present on git://github.com/pre-commit/pre-commit-hooks: sha

[WARNING] Unexpected key(s) present on git://github.com/asottile/reorder_python_imports: sha

[INFO] Initializing environment for git://github.com/pre-commit/pre-commit-hooks.

[INFO] Initializing environment for git://github.com/asottile/reorder_python_imports.

[INFO] Installing environment for git://github.com/pre-commit/pre-commit-hooks.

[INFO] Once installed this environment will be reused.

[INFO] This may take a few minutes...

[INFO] Installing environment for git://github.com/asottile/reorder_python_imports.

[INFO] Once installed this environment will be reused.

[INFO] This may take a few minutes...

Check for added large files..............................................Passed

Check docstring is first.................................................Passed

Check for merge conflicts................................................Passed

Check Yaml...............................................................Passed

Check JSON...............................................................Passed

Debug Statements (Python)................................................Passed

Fix End of Files.........................................................Passed

Flake8...................................................................Passed

Tests should end in _test.py.............................................Passed

Fix requirements.txt.....................................................Passed

Trim Trailing Whitespace.................................................Passed

Reorder python imports...................................................Passed

___________________________________ summary ____________________________________

  pre-commit: commands succeeded

  congratulations :)

++ get_versions='docker run --rm
    --entrypoint=/code/.tox/py27/bin/python
    compose:debian
    /code/script/test/versions.py docker/docker-ce,moby/moby'
++ '[' 19.03.5 == '' ']'
++ '[' 19.03.5 == all ']'
++ BUILD_NUMBER=jenkins-compose-ndeloof-28
++ PY_TEST_VERSIONS=py37
++ for version in $DOCKER_VERSIONS
++ echo 'Running tests against Docker 19.03.5'
Running tests against Docker 19.03.5
++ daemon_container=compose-dind-19.03.5-jenkins-compose-ndeloof-28
++ trap on_exit EXIT
++ repo=dockerswarm/dind
++ tail -n 10
++ docker run -d --name compose-dind-19.03.5-jenkins-compose-ndeloof-28 --privileged --volume=/var/lib/docker dockerswarm/dind:19.03.5 dockerd -H tcp://0.0.0.0:2375 --storage-driver=overlay
c3b56a2ea16718bfb8a934bbd4f7cc6762bc1a1539bbe5544264672bcc69a0d5
++ docker run --rm --tty --link=compose-dind-19.03.5-jenkins-compose-ndeloof-28:docker --env=DOCKER_HOST=tcp://docker:2375 --env=DOCKER_VERSION=19.03.5 --entrypoint=tox compose:debian -e py37 -- --verbose
py37 develop-inst-nodeps: /code

py37 installed: altgraph==0.16.1,atomicwrites==1.3.0,attrs==19.3.0,backports.shutil-get-terminal-size==1.0.0,bcrypt==3.1.7,cached-property==1.3.0,certifi==2017.4.17,cffi==1.13.2,chardet==3.0.4,coverage==4.4.2,cryptography==2.8,ddt==1.2.0,docker==4.1.0,# Editable install with no version control (docker-compose==1.26.0.dev0),-e /code,docker-pycreds==0.4.0,dockerpty==0.4.1,docopt==0.6.2,flake8==3.5.0,idna==2.5,ipaddress==1.0.18,jsonschema==3.0.1,mccabe==0.6.1,mock==3.0.5,more-itertools==8.0.0,paramiko==2.6.0,pluggy==0.6.0,py==1.8.0,pycodestyle==2.3.1,pycparser==2.19,pyflakes==1.6.0,PyInstaller==3.5,PyNaCl==1.3.0,pyrsistent==0.15.6,PySocks==1.6.7,pytest==3.6.3,pytest-cov==2.5.1,PyYAML==4.2b1,requests==2.22.0,six==1.12.0,texttable==1.6.2,urllib3==1.25.7,websocket-client==0.32.0

py37 runtests: PYTHONHASHSEED='96578805'

py37 runtests: commands[0] | mkdir -p .coverage-binfiles

py37 runtests: commands[1] | py.test -v --cov=compose --cov-report html --cov-report term --cov-config=tox.ini --verbose

============================= test session starts ==============================

platform linux -- Python 3.7.4, pytest-3.6.3, py-1.8.0, pluggy-0.6.0 -- /code/.tox/py37/bin/python3.7

cachedir: .pytest_cache

rootdir: /code, inifile: tox.ini

plugins: cov-2.5.1


collecting 0 items                                                             
collecting 197 items                                                           
collecting 197 items                                                           
collecting 197 items                                                           
collecting 197 items                                                           
collecting 198 items                                                           
collecting 198 items                                                           
collecting 198 items                                                           
collecting 201 items                                                           
collecting 201 items                                                           
collecting 201 items                                                           
collecting 269 items                                                           
collecting 269 items                                                           
collecting 269 items                                                           
collecting 272 items                                                           
collecting 272 items                                                           
collecting 272 items                                                           
collecting 401 items                                                           
collecting 405 items                                                           
collecting 405 items                                                           
collecting 405 items                                                           
collecting 405 items                                                           
collecting 408 items                                                           
collecting 417 items                                                           
collecting 428 items                                                           
collecting 436 items                                                           
collecting 436 items                                                           
collecting 436 items                                                           
collecting 436 items                                                           
collecting 447 items                                                           
collecting 447 items                                                           
collecting 464 items                                                           
collecting 477 items                                                           
collecting 477 items                                                           
collecting 495 items                                                           
collecting 496 items                                                           
collecting 496 items                                                           
collecting 504 items                                                           
collecting 504 items                                                           
collecting 509 items                                                           
collecting 512 items                                                           
collecting 521 items                                                           
collecting 521 items                                                           
collecting 552 items                                                           
collecting 552 items                                                           
collecting 626 items                                                           
collecting 627 items                                                           
collecting 630 items                                                           
collecting 634 items                                                           
collecting 635 items                                                           
collecting 645 items                                                           
collecting 648 items                                                           
collecting 651 items                                                           
collecting 651 items                                                           
collecting 656 items                                                           
collecting 656 items                                                           
collecting 669 items                                                           
collecting 672 items                                                           
collecting 672 items                                                           
collecting 674 items                                                           
collecting 674 items                                                           
collecting 676 items                                                           
collecting 676 items                                                           
collecting 677 items                                                           
collecting 677 items                                                           
collecting 678 items                                                           
collecting 678 items                                                           
collecting 678 items                                                           
collecting 680 items                                                           
collecting 680 items                                                           
collecting 680 items                                                           
collecting 688 items                                                           
collecting 688 items                                                           
collecting 688 items                                                           
collecting 692 items                                                           
collecting 708 items                                                           
collecting 711 items                                                           
collecting 711 items                                                           
collecting 711 items                                                           
collecting 719 items                                                           
collecting 719 items                                                           
collecting 719 items                                                           
collecting 725 items                                                           
collecting 725 items                                                           
collecting 727 items                                                           
collecting 727 items                                                           
collecting 730 items                                                           
collecting 730 items                                                           
collecting 734 items                                                           
collecting 734 items                                                           
collecting 738 items                                                           
collecting 738 items                                                           
collecting 741 items                                                           
collecting 746 items                                                           
collecting 746 items                                                           
collecting 749 items                                                           
collecting 749 items                                                           
collecting 753 items                                                           
collecting 753 items                                                           
collecting 760 items                                                           
collecting 760 items                                                           
collecting 760 items                                                           
collecting 764 items                                                           
collecting 769 items                                                           
collecting 769 items                                                           
collecting 773 items                                                           
collecting 773 items                                                           
collecting 917 items                                                           
collecting 925 items                                                           
collecting 933 items                                                           
collecting 936 items                                                           
collecting 946 items                                                           
collecting 957 items                                                           
collecting 963 items                                                           
collecting 969 items                                                           
collecting 972 items                                                           
collecting 977 items                                                           
collecting 985 items                                                           
collecting 989 items                                                           
collecting 995 items                                                           
collecting 998 items                                                           
collecting 1001 items                                                          
collecting 1013 items                                                          
collecting 1044 items                                                          
collecting 1047 items                                                          
collecting 1050 items                                                          
collecting 1057 items                                                          
collecting 1061 items                                                          
collecting 1063 items                                                          
collecting 1078 items                                                          
collecting 1078 items                                                          
collecting 1083 items                                                          
collecting 1083 items                                                          
collecting 1104 items                                                          
collecting 1116 items                                                          
collecting 1116 items                                                          
collecting 1116 items                                                          
collecting 1125 items                                                          
collecting 1125 items                                                          
collecting 1137 items                                                          
collecting 1137 items                                                          
collecting 1146 items                                                          
collecting 1146 items                                                          
collecting 1148 items                                                          
collected 1148 items                                                           



tests/acceptance/cli_test.py::CLITestCase::test_build_failed PASSED      [  0%]

tests/acceptance/cli_test.py::CLITestCase::test_build_failed_forcerm PASSED [  0%]

tests/acceptance/cli_test.py::CLITestCase::test_build_log_level PASSED   [  0%]

tests/acceptance/cli_test.py::CLITestCase::test_build_memory_build_option PASSED [  0%]

tests/acceptance/cli_test.py::CLITestCase::test_build_no_cache PASSED    [  0%]

tests/acceptance/cli_test.py::CLITestCase::test_build_no_cache_pull PASSED [  0%]

tests/acceptance/cli_test.py::CLITestCase::test_build_override_dir PASSED [  0%]

tests/acceptance/cli_test.py::CLITestCase::test_build_override_dir_invalid_path PASSED [  0%]

tests/acceptance/cli_test.py::CLITestCase::test_build_parallel PASSED    [  0%]

tests/acceptance/cli_test.py::CLITestCase::test_build_plain PASSED       [  0%]

tests/acceptance/cli_test.py::CLITestCase::test_build_pull PASSED        [  0%]

tests/acceptance/cli_test.py::CLITestCase::test_build_rm XPASS           [  1%]

tests/acceptance/cli_test.py::CLITestCase::test_build_shm_size_build_option PASSED [  1%]

tests/acceptance/cli_test.py::CLITestCase::test_build_with_buildarg_cli_override PASSED [  1%]

tests/acceptance/cli_test.py::CLITestCase::test_build_with_buildarg_from_compose_file PASSED [  1%]

tests/acceptance/cli_test.py::CLITestCase::test_build_with_buildarg_old_api_version PASSED [  1%]

tests/acceptance/cli_test.py::CLITestCase::test_bundle_with_digests PASSED [  1%]

tests/acceptance/cli_test.py::CLITestCase::test_config_compatibility_mode PASSED [  1%]

tests/acceptance/cli_test.py::CLITestCase::test_config_default PASSED    [  1%]

tests/acceptance/cli_test.py::CLITestCase::test_config_external_network PASSED [  1%]

tests/acceptance/cli_test.py::CLITestCase::test_config_external_network_v3_5 PASSED [  1%]

tests/acceptance/cli_test.py::CLITestCase::test_config_external_volume_v2 PASSED [  1%]

tests/acceptance/cli_test.py::CLITestCase::test_config_external_volume_v2_x PASSED [  2%]

tests/acceptance/cli_test.py::CLITestCase::test_config_external_volume_v3_4 PASSED [  2%]

tests/acceptance/cli_test.py::CLITestCase::test_config_external_volume_v3_x PASSED [  2%]

tests/acceptance/cli_test.py::CLITestCase::test_config_list_services PASSED [  2%]

tests/acceptance/cli_test.py::CLITestCase::test_config_list_volumes PASSED [  2%]

tests/acceptance/cli_test.py::CLITestCase::test_config_quiet PASSED      [  2%]

tests/acceptance/cli_test.py::CLITestCase::test_config_quiet_with_error PASSED [  2%]

tests/acceptance/cli_test.py::CLITestCase::test_config_restart PASSED    [  2%]

tests/acceptance/cli_test.py::CLITestCase::test_config_stdin PASSED      [  2%]

tests/acceptance/cli_test.py::CLITestCase::test_config_v1 PASSED         [  2%]

tests/acceptance/cli_test.py::CLITestCase::test_config_v3 PASSED         [  2%]

tests/acceptance/cli_test.py::CLITestCase::test_config_with_dot_env PASSED [  2%]

tests/acceptance/cli_test.py::CLITestCase::test_config_with_dot_env_and_override_dir PASSED [  3%]

tests/acceptance/cli_test.py::CLITestCase::test_config_with_env_file PASSED [  3%]

tests/acceptance/cli_test.py::CLITestCase::test_config_with_hash_option PASSED [  3%]

tests/acceptance/cli_test.py::CLITestCase::test_create PASSED            [  3%]

tests/acceptance/cli_test.py::CLITestCase::test_create_with_force_recreate PASSED [  3%]

tests/acceptance/cli_test.py::CLITestCase::test_create_with_force_recreate_and_no_recreate PASSED [  3%]

tests/acceptance/cli_test.py::CLITestCase::test_create_with_no_recreate PASSED [  3%]

tests/acceptance/cli_test.py::CLITestCase::test_down PASSED              [  3%]

tests/acceptance/cli_test.py::CLITestCase::test_down_invalid_rmi_flag PASSED [  3%]

tests/acceptance/cli_test.py::CLITestCase::test_down_signal PASSED       [  3%]

tests/acceptance/cli_test.py::CLITestCase::test_down_timeout PASSED      [  3%]

tests/acceptance/cli_test.py::CLITestCase::test_env_file_relative_to_compose_file PASSED [  4%]

tests/acceptance/cli_test.py::CLITestCase::test_events_human_readable PASSED [  4%]

tests/acceptance/cli_test.py::CLITestCase::test_events_json PASSED       [  4%]

tests/acceptance/cli_test.py::CLITestCase::test_exec_custom_user PASSED  [  4%]

tests/acceptance/cli_test.py::CLITestCase::test_exec_detach_long_form PASSED [  4%]

tests/acceptance/cli_test.py::CLITestCase::test_exec_service_with_environment_overridden PASSED [  4%]

tests/acceptance/cli_test.py::CLITestCase::test_exec_without_tty PASSED  [  4%]

tests/acceptance/cli_test.py::CLITestCase::test_exec_workdir PASSED      [  4%]

tests/acceptance/cli_test.py::CLITestCase::test_exit_code_from_signal_stop Cancelling nested steps due to timeout
Sending interrupt signal to process
Terminated
script returned exit code 143
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Binaries)
Stage "Binaries" skipped due to earlier failure(s)
[Pipeline] parallel
[Pipeline] { (Branch: macosx binary)
[Pipeline] { (Branch: linux binary)
[Pipeline] { (Branch: windows binary)
[Pipeline] { (Branch: alpine runtime images)
[Pipeline] { (Branch: debian runtime images)
[Pipeline] stage
[Pipeline] { (macosx binary)
[Pipeline] stage
[Pipeline] { (linux binary)
[Pipeline] stage
[Pipeline] { (windows binary)
[Pipeline] stage
[Pipeline] { (alpine runtime images)
[Pipeline] stage
[Pipeline] { (debian runtime images)
Stage "macosx binary" skipped due to earlier failure(s)
[Pipeline] }
Stage "linux binary" skipped due to earlier failure(s)
[Pipeline] }
Stage "windows binary" skipped due to earlier failure(s)
[Pipeline] }
Stage "alpine runtime images" skipped due to earlier failure(s)
[Pipeline] }
Stage "debian runtime images" skipped due to earlier failure(s)
[Pipeline] }
[Pipeline] // stage
[Pipeline] // stage
[Pipeline] // stage
[Pipeline] // stage
[Pipeline] // stage
[Pipeline] }
Failed in branch macosx binary
[Pipeline] }
Failed in branch linux binary
[Pipeline] }
Failed in branch windows binary
[Pipeline] }
Failed in branch alpine runtime images
[Pipeline] }
Failed in branch debian runtime images
[Pipeline] // parallel
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Release)
Stage "Release" skipped due to earlier failure(s)
[Pipeline] parallel
[Pipeline] { (Branch: Pushing images)
[Pipeline] { (Branch: Creating Github Release)
[Pipeline] { (Branch: Publishing Python packages)
[Pipeline] { (Branch: Publishing binaries to Bintray)
[Pipeline] stage
[Pipeline] { (Pushing images)
[Pipeline] stage
[Pipeline] { (Creating Github Release)
[Pipeline] stage
[Pipeline] { (Publishing Python packages)
[Pipeline] stage
[Pipeline] { (Publishing binaries to Bintray)
Stage "Pushing images" skipped due to earlier failure(s)
[Pipeline] }
Stage "Creating Github Release" skipped due to earlier failure(s)
[Pipeline] }
Stage "Publishing Python packages" skipped due to earlier failure(s)
[Pipeline] }
Stage "Publishing binaries to Bintray" skipped due to earlier failure(s)
[Pipeline] }
[Pipeline] // stage
[Pipeline] // stage
[Pipeline] // stage
[Pipeline] // stage
[Pipeline] }
Failed in branch Pushing images
[Pipeline] }
Failed in branch Creating Github Release
[Pipeline] }
Failed in branch Publishing Python packages
[Pipeline] }
Failed in branch Publishing binaries to Bintray
[Pipeline] // parallel
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // timeout
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] End of Pipeline

GitHub has been notified of this commit’s build result

Timeout has been exceeded
Finished: ABORTED