def test_configure_and_run_command_uses_cmd_from_config( mock_get_instance_config, mock_load_system_paasta_config, mock_run_docker_container, mock_socket_getfqdn, ): mock_load_system_paasta_config.return_value = SystemPaastaConfig( {'cluster': 'fake_cluster', 'volumes': []}, '/fake_dir/') mock_docker_client = mock.MagicMock(spec_set=docker.Client) mock_get_instance_config.return_value.get_cmd.return_value = 'fake_command' mock_socket_getfqdn.return_value = 'fake_hostname' fake_service = 'fake_service' docker_hash = '8' * 40 args = mock.MagicMock() args.cmd = '' args.service = fake_service args.instance = 'fake_instance' args.healthcheck = False args.healthcheck_only = False args.interactive = False configure_and_run_docker_container( docker_client=mock_docker_client, docker_hash=docker_hash, service=fake_service, instance='fake_instance', cluster='fake_cluster', args=args, ) is None mock_run_docker_container.assert_called_once_with( docker_client=mock_docker_client, service=fake_service, instance=args.instance, docker_hash=docker_hash, volumes=[], interactive=args.interactive, command=shlex.split(mock_get_instance_config.return_value.get_cmd.return_value), hostname=mock_socket_getfqdn.return_value, healthcheck=args.healthcheck, healthcheck_only=args.healthcheck_only, instance_config=mock_get_instance_config.return_value, soa_dir=args.yelpsoa_config_root, )
def test_configure_and_run_pulls_image_when_asked( mock_validate_service_instance, mock_get_instance_config, mock_load_system_paasta_config, mock_run_docker_container, mock_docker_pull_image, mock_socket_getfqdn, ): mock_validate_service_instance.return_value = 'marathon' mock_load_system_paasta_config.return_value = SystemPaastaConfig( {'cluster': 'fake_cluster', 'volumes': [], 'docker_registry': 'fake_registry'}, '/fake_dir/') mock_docker_client = mock.MagicMock(spec_set=docker.Client) mock_socket_getfqdn.return_value = 'fake_hostname' fake_instance_config = mock.MagicMock(InstanceConfig) fake_instance_config.get_docker_image.return_value = 'fake_image' mock_get_instance_config.return_value = fake_instance_config fake_service = 'fake_service' args = mock.MagicMock() args.cmd = None args.service = fake_service args.instance = 'fake_instance' args.healthcheck = False args.healthcheck_only = False args.interactive = True assert configure_and_run_docker_container( docker_client=mock_docker_client, docker_hash=None, service=fake_service, instance='fake_instance', cluster='fake_cluster', args=args, pull_image=True, ) is None mock_docker_pull_image.assert_called_once_with('fake_registry/fake_image') mock_run_docker_container.assert_called_once_with( docker_client=mock_docker_client, service=fake_service, instance=args.instance, docker_hash='fake_registry/fake_image', volumes=[], interactive=args.interactive, command=['bash'], hostname=mock_socket_getfqdn.return_value, healthcheck=args.healthcheck, healthcheck_only=args.healthcheck_only, instance_config=mock_get_instance_config.return_value, soa_dir=args.yelpsoa_config_root, dry_run=False, )
def test_configure_and_run_uses_bash_by_default_when_interactive( mock_validate_service_instance, mock_get_instance_config, mock_load_system_paasta_config, mock_run_docker_container, mock_socket_getfqdn, ): mock_validate_service_instance.return_value = 'marathon' mock_load_system_paasta_config.return_value = SystemPaastaConfig( {'cluster': 'fake_cluster', 'volumes': []}, '/fake_dir/') mock_docker_client = mock.MagicMock(spec_set=docker.Client) mock_socket_getfqdn.return_value = 'fake_hostname' fake_service = 'fake_service' docker_hash = '8' * 40 args = mock.MagicMock() args.cmd = None args.service = fake_service args.healthcheck = False args.healthcheck_only = False args.instance = 'fake_instance' args.interactive = True assert configure_and_run_docker_container( docker_client=mock_docker_client, docker_hash=docker_hash, service=fake_service, instance='fake_instance', cluster='fake_cluster', args=args, ) is None mock_run_docker_container.assert_called_once_with( docker_client=mock_docker_client, service=fake_service, instance=args.instance, docker_hash=docker_hash, volumes=[], interactive=args.interactive, command=['bash'], hostname=mock_socket_getfqdn.return_value, healthcheck=args.healthcheck, healthcheck_only=args.healthcheck_only, instance_config=mock_get_instance_config.return_value, soa_dir=args.yelpsoa_config_root, )
def test_configure_and_run_uses_bash_by_default_when_interactive( mock_get_instance_config, mock_load_system_paasta_config, mock_run_docker_container, ): mock_load_system_paasta_config.return_value = SystemPaastaConfig( { 'cluster': 'fake_cluster', 'volumes': [] }, '/fake_dir/') mock_docker_client = mock.MagicMock(spec_set=docker.Client) fake_service = 'fake_service' docker_hash = '8' * 40 args = mock.MagicMock() args.cmd = None args.service = fake_service args.healthcheck = False args.healthcheck_only = False args.instance = 'fake_instance' args.interactive = True assert configure_and_run_docker_container( docker_client=mock_docker_client, docker_hash=docker_hash, service=fake_service, instance='fake_instance', cluster='fake_cluster', args=args, ) is None mock_run_docker_container.assert_called_once_with( docker_client=mock_docker_client, service=fake_service, instance=args.instance, docker_hash=docker_hash, volumes=[], interactive=args.interactive, command=['bash'], healthcheck=args.healthcheck, healthcheck_only=args.healthcheck_only, instance_config=mock_get_instance_config.return_value, soa_dir=args.yelpsoa_config_root, )