mirror of
				https://github.com/docker/compose.git
				synced 2025-10-31 03:03:49 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			241 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			241 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import pytest
 | |
| 
 | |
| import tests.acceptance.cli_test
 | |
| 
 | |
| # FIXME Skipping all the acceptance tests when in `--conformity`
 | |
| non_conformity_tests = [
 | |
|     "test_build_failed",
 | |
|     "test_build_failed_forcerm",
 | |
|     "test_build_log_level",
 | |
|     "test_build_memory_build_option",
 | |
|     "test_build_no_cache",
 | |
|     "test_build_no_cache_pull",
 | |
|     "test_build_override_dir",
 | |
|     "test_build_override_dir_invalid_path",
 | |
|     "test_build_parallel",
 | |
|     "test_build_plain",
 | |
|     "test_build_pull",
 | |
|     "test_build_rm",
 | |
|     "test_build_shm_size_build_option",
 | |
|     "test_build_with_buildarg_cli_override",
 | |
|     "test_build_with_buildarg_from_compose_file",
 | |
|     "test_build_with_buildarg_old_api_version",
 | |
|     "test_config_compatibility_mode",
 | |
|     "test_config_compatibility_mode_from_env",
 | |
|     "test_config_compatibility_mode_from_env_and_option_precedence",
 | |
|     "test_config_default",
 | |
|     "test_config_external_network",
 | |
|     "test_config_external_network_v3_5",
 | |
|     "test_config_external_volume_v2",
 | |
|     "test_config_external_volume_v2_x",
 | |
|     "test_config_external_volume_v3_4",
 | |
|     "test_config_external_volume_v3_x",
 | |
|     "test_config_list_services",
 | |
|     "test_config_list_volumes",
 | |
|     "test_config_quiet",
 | |
|     "test_config_quiet_with_error",
 | |
|     "test_config_restart",
 | |
|     "test_config_stdin",
 | |
|     "test_config_v1",
 | |
|     "test_config_v3",
 | |
|     "test_config_with_dot_env",
 | |
|     "test_config_with_dot_env_and_override_dir",
 | |
|     "test_config_with_env_file",
 | |
|     "test_config_with_hash_option",
 | |
|     "test_create",
 | |
|     "test_create_with_force_recreate",
 | |
|     "test_create_with_force_recreate_and_no_recreate",
 | |
|     "test_create_with_no_recreate",
 | |
|     "test_down",
 | |
|     "test_down_invalid_rmi_flag",
 | |
|     "test_down_signal",
 | |
|     "test_down_timeout",
 | |
|     "test_env_file_relative_to_compose_file",
 | |
|     "test_events_human_readable",
 | |
|     "test_events_json",
 | |
|     "test_exec_custom_user",
 | |
|     "test_exec_detach_long_form",
 | |
|     "test_exec_novalue_var_dotenv_file",
 | |
|     "test_exec_service_with_environment_overridden",
 | |
|     "test_exec_without_tty",
 | |
|     "test_exec_workdir",
 | |
|     "test_exit_code_from_signal_stop",
 | |
|     "test_expanded_port",
 | |
|     "test_forward_exitval",
 | |
|     "test_help",
 | |
|     "test_help_nonexistent",
 | |
|     "test_home_and_env_var_in_volume_path",
 | |
|     "test_host_not_reachable",
 | |
|     "test_host_not_reachable_volumes_from_container",
 | |
|     "test_host_not_reachable_volumes_from_container",
 | |
|     "test_images",
 | |
|     "test_images_default_composefile",
 | |
|     "test_images_tagless_image",
 | |
|     "test_images_use_service_tag",
 | |
|     "test_kill",
 | |
|     "test_kill_signal_sigstop",
 | |
|     "test_kill_stopped_service",
 | |
|     "test_logs_default",
 | |
|     "test_logs_follow",
 | |
|     "test_logs_follow_logs_from_new_containers",
 | |
|     "test_logs_follow_logs_from_restarted_containers",
 | |
|     "test_logs_invalid_service_name",
 | |
|     "test_logs_on_stopped_containers_exits",
 | |
|     "test_logs_tail",
 | |
|     "test_logs_timestamps",
 | |
|     "test_pause_no_containers",
 | |
|     "test_pause_unpause",
 | |
|     "test_port",
 | |
|     "test_port_with_scale",
 | |
|     "test_ps",
 | |
|     "test_ps_all",
 | |
|     "test_ps_alternate_composefile",
 | |
|     "test_ps_default_composefile",
 | |
|     "test_ps_services_filter_option",
 | |
|     "test_ps_services_filter_status",
 | |
|     "test_pull",
 | |
|     "test_pull_can_build",
 | |
|     "test_pull_with_digest",
 | |
|     "test_pull_with_ignore_pull_failures",
 | |
|     "test_pull_with_include_deps",
 | |
|     "test_pull_with_no_deps",
 | |
|     "test_pull_with_parallel_failure",
 | |
|     "test_pull_with_quiet",
 | |
|     "test_quiet_build",
 | |
|     "test_restart",
 | |
|     "test_restart_no_containers",
 | |
|     "test_restart_stopped_container",
 | |
|     "test_rm",
 | |
|     "test_rm_all",
 | |
|     "test_rm_stop",
 | |
|     "test_run_detached_connects_to_network",
 | |
|     "test_run_does_not_recreate_linked_containers",
 | |
|     "test_run_env_values_from_system",
 | |
|     "test_run_handles_sighup",
 | |
|     "test_run_handles_sigint",
 | |
|     "test_run_handles_sigterm",
 | |
|     "test_run_interactive_connects_to_network",
 | |
|     "test_run_label_flag",
 | |
|     "test_run_one_off_with_multiple_volumes",
 | |
|     "test_run_one_off_with_volume",
 | |
|     "test_run_one_off_with_volume_merge",
 | |
|     "test_run_rm",
 | |
|     "test_run_service_with_compose_file_entrypoint",
 | |
|     "test_run_service_with_compose_file_entrypoint_and_command_overridden",
 | |
|     "test_run_service_with_compose_file_entrypoint_and_empty_string_command",
 | |
|     "test_run_service_with_compose_file_entrypoint_overridden",
 | |
|     "test_run_service_with_dependencies",
 | |
|     "test_run_service_with_dockerfile_entrypoint",
 | |
|     "test_run_service_with_dockerfile_entrypoint_and_command_overridden",
 | |
|     "test_run_service_with_dockerfile_entrypoint_overridden",
 | |
|     "test_run_service_with_environment_overridden",
 | |
|     "test_run_service_with_explicitly_mapped_ip_ports",
 | |
|     "test_run_service_with_explicitly_mapped_ports",
 | |
|     "test_run_service_with_links",
 | |
|     "test_run_service_with_map_ports",
 | |
|     "test_run_service_with_scaled_dependencies",
 | |
|     "test_run_service_with_unset_entrypoint",
 | |
|     "test_run_service_with_use_aliases",
 | |
|     "test_run_service_with_user_overridden",
 | |
|     "test_run_service_with_user_overridden_short_form",
 | |
|     "test_run_service_with_workdir_overridden",
 | |
|     "test_run_service_with_workdir_overridden_short_form",
 | |
|     "test_run_service_without_links",
 | |
|     "test_run_service_without_map_ports",
 | |
|     "test_run_unicode_env_values_from_system",
 | |
|     "test_run_with_custom_name",
 | |
|     "test_run_with_expose_ports",
 | |
|     "test_run_with_no_deps",
 | |
|     "test_run_without_command",
 | |
|     "test_scale",
 | |
|     "test_scale_v2_2",
 | |
|     "test_shorthand_host_opt",
 | |
|     "test_shorthand_host_opt_interactive",
 | |
|     "test_start_no_containers",
 | |
|     "test_stop",
 | |
|     "test_stop_signal",
 | |
|     "test_top_processes_running",
 | |
|     "test_top_services_not_running",
 | |
|     "test_top_services_running",
 | |
|     "test_unpause_no_containers",
 | |
|     "test_up",
 | |
|     "test_up_attached",
 | |
|     "test_up_detached",
 | |
|     "test_up_detached_long_form",
 | |
|     "test_up_external_networks",
 | |
|     "test_up_handles_abort_on_container_exit",
 | |
|     "test_up_handles_abort_on_container_exit_code",
 | |
|     "test_up_handles_aborted_dependencies",
 | |
|     "test_up_handles_force_shutdown",
 | |
|     "test_up_handles_sigint",
 | |
|     "test_up_handles_sigterm",
 | |
|     "test_up_logging",
 | |
|     "test_up_logging_legacy",
 | |
|     "test_up_missing_network",
 | |
|     "test_up_no_ansi",
 | |
|     "test_up_no_services",
 | |
|     "test_up_no_start",
 | |
|     "test_up_no_start_remove_orphans",
 | |
|     "test_up_scale_reset",
 | |
|     "test_up_scale_scale_down",
 | |
|     "test_up_scale_scale_up",
 | |
|     "test_up_scale_to_zero",
 | |
|     "test_up_with_attach_dependencies",
 | |
|     "test_up_with_default_network_config",
 | |
|     "test_up_with_default_override_file",
 | |
|     "test_up_with_duplicate_override_yaml_files",
 | |
|     "test_up_with_extends",
 | |
|     "test_up_with_external_default_network",
 | |
|     "test_up_with_force_recreate",
 | |
|     "test_up_with_force_recreate_and_no_recreate",
 | |
|     "test_up_with_healthcheck",
 | |
|     "test_up_with_ignore_remove_orphans",
 | |
|     "test_up_with_links_v1",
 | |
|     "test_up_with_multiple_files",
 | |
|     "test_up_with_net_is_invalid",
 | |
|     "test_up_with_net_v1",
 | |
|     "test_up_with_network_aliases",
 | |
|     "test_up_with_network_internal",
 | |
|     "test_up_with_network_labels",
 | |
|     "test_up_with_network_mode",
 | |
|     "test_up_with_network_static_addresses",
 | |
|     "test_up_with_networks",
 | |
|     "test_up_with_no_deps",
 | |
|     "test_up_with_no_recreate",
 | |
|     "test_up_with_override_yaml",
 | |
|     "test_up_with_pid_mode",
 | |
|     "test_up_with_timeout",
 | |
|     "test_up_with_volume_labels",
 | |
|     "test_fail_on_both_host_and_context_opt",
 | |
|     "test_fail_run_on_inexistent_context",
 | |
| ]
 | |
| 
 | |
| 
 | |
| def pytest_addoption(parser):
 | |
|     parser.addoption(
 | |
|         "--conformity",
 | |
|         action="store_true",
 | |
|         default=False,
 | |
|         help="Only runs tests that are not black listed as non conformity test. "
 | |
|              "The conformity tests check for compatibility with the Compose spec."
 | |
|     )
 | |
|     parser.addoption(
 | |
|         "--binary",
 | |
|         default=tests.acceptance.cli_test.DOCKER_COMPOSE_EXECUTABLE,
 | |
|         help="Forces the execution of a binary in the PATH. Default is `docker-compose`."
 | |
|     )
 | |
| 
 | |
| 
 | |
| def pytest_collection_modifyitems(config, items):
 | |
|     if not config.getoption("--conformity"):
 | |
|         return
 | |
|     if config.getoption("--binary"):
 | |
|         tests.acceptance.cli_test.DOCKER_COMPOSE_EXECUTABLE = config.getoption("--binary")
 | |
| 
 | |
|     print("Binary -> {}".format(tests.acceptance.cli_test.DOCKER_COMPOSE_EXECUTABLE))
 | |
|     skip_non_conformity = pytest.mark.skip(reason="skipping because that's not a conformity test")
 | |
|     for item in items:
 | |
|         if item.name in non_conformity_tests:
 | |
|             print("Skipping '{}' when running in compatibility mode".format(item.name))
 | |
|             item.add_marker(skip_non_conformity)
 |