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 args.cluster = 'fake_cluster' configure_and_run_docker_container(mock_docker_client, docker_hash, fake_service, 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 )
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 args.cluster = 'fake_cluster' configure_and_run_docker_container(mock_docker_client, docker_hash, fake_service, 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)
def test_configure_and_run_missing_cluster_exception( mock_get_default_cluster_for_service, mock_load_marathon_service_config, mock_load_system_paasta_config, ): mock_get_default_cluster_for_service.side_effect = NoConfigurationForServiceError() mock_load_system_paasta_config.return_value = SystemPaastaConfig({'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 = 'fake_command' args.service = fake_service args.healthcheck = False args.instance = 'fake_instance' args.interactive = False args.cluster = None with raises(SystemExit) as excinfo: configure_and_run_docker_container( docker_client=mock_docker_client, docker_hash=docker_hash, service=fake_service, args=args, ) assert excinfo.value.code == 2
def test_configure_and_run_explicit_cluster( mock_run_docker_container, mock_get_instance_config, mock_load_system_paasta_config, ): mock_load_system_paasta_config.return_value = SystemPaastaConfig( {'cluster': 'fake_cluster_that_will_be_overriden', '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 = 'fake_command' args.service = fake_service args.healthcheck = False args.instance = 'fake_instance' args.interactive = False args.cluster = 'fake_cluster' args.yelpsoa_config_root = 'fakesoa-configs/' assert configure_and_run_docker_container(mock_docker_client, docker_hash, fake_service, args) is None mock_get_instance_config.assert_called_once_with( service=fake_service, instance=args.instance, cluster=args.cluster, soa_dir=args.yelpsoa_config_root )
def test_configure_and_run_explicit_cluster( mock_run_docker_container, mock_get_instance_config, mock_load_system_paasta_config, ): mock_load_system_paasta_config.return_value = SystemPaastaConfig( { 'cluster': 'fake_cluster_that_will_be_overriden', '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 = 'fake_command' args.service = fake_service args.healthcheck = False args.instance = 'fake_instance' args.interactive = False args.cluster = 'fake_cluster' args.yelpsoa_config_root = 'fakesoa-configs/' assert configure_and_run_docker_container(mock_docker_client, docker_hash, fake_service, args) is None mock_get_instance_config.assert_called_once_with( service=fake_service, instance=args.instance, cluster=args.cluster, soa_dir=args.yelpsoa_config_root)
def test_configure_and_run_command_uses_cmd_from_config( 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 = '' args.service = fake_service args.healthcheck = False args.healthcheck_only = False args.instance = 'fake_instance' args.interactive = False args.cluster = 'fake_cluster' mock_get_instance_config.return_value.get_cmd.return_value = 'fake_command' configure_and_run_docker_container( docker_client=mock_docker_client, docker_hash=docker_hash, service=fake_service, 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), healthcheck=args.healthcheck, healthcheck_only=args.healthcheck_only, instance_config=mock_get_instance_config.return_value )
def test_configure_and_run_missing_cluster_exception( mock_get_default_cluster_for_service, mock_load_marathon_service_config, mock_load_system_paasta_config, ): mock_get_default_cluster_for_service.side_effect = NoConfigurationForServiceError( ) mock_load_system_paasta_config.return_value = SystemPaastaConfig( {'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 = 'fake_command' args.service = fake_service args.healthcheck = False args.instance = 'fake_instance' args.interactive = False args.cluster = None with raises(SystemExit) as excinfo: configure_and_run_docker_container(mock_docker_client, docker_hash, fake_service, args) assert excinfo.value.code == 2
def test_configure_and_run_pulls_image_when_asked( mock_get_instance_config, mock_load_system_paasta_config, mock_run_docker_container, mock_docker_pull_image, ): 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) 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.healthcheck = False args.healthcheck_only = False args.instance = 'fake_instance' args.interactive = True args.cluster = 'fake_cluster' assert configure_and_run_docker_container( docker_client=mock_docker_client, docker_hash=None, service=fake_service, 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', healthcheck=args.healthcheck, healthcheck_only=args.healthcheck_only, instance_config=mock_get_instance_config.return_value )