def test_run_healthcheck_http_fails(mock_sleep, mock_perform_http_healthcheck):
    mock_docker_client = mock.MagicMock(spec_set=docker.Client)
    fake_container_id = 'fake_container_id'
    fake_mode = 'http'
    fake_url = 'http://fakehost:666/fake_status_path'
    fake_timeout = 10

    mock_perform_http_healthcheck.return_value = False
    assert not run_healthcheck_on_container(
        mock_docker_client, fake_container_id, fake_mode, fake_url, fake_timeout)
    mock_perform_http_healthcheck.assert_called_once_with(fake_url, fake_timeout)
def test_run_healthcheck_cmd_fails(mock_sleep, mock_perform_cmd_healthcheck):
    mock_docker_client = mock.MagicMock(spec_set=docker.Client)
    fake_container_id = 'fake_container_id'
    fake_mode = 'cmd'
    fake_cmd = '/bin/true'
    fake_timeout = 10

    mock_perform_cmd_healthcheck.return_value = False
    assert not run_healthcheck_on_container(
        mock_docker_client, fake_container_id, fake_mode, fake_cmd, fake_timeout)
    assert mock_perform_cmd_healthcheck.call_count == 1
    mock_perform_cmd_healthcheck.assert_called_once_with(mock_docker_client, fake_container_id, fake_cmd, fake_timeout)
def test_run_healthcheck_tcp_success(mock_sleep, mock_perform_tcp_healthcheck):
    mock_docker_client = mock.MagicMock(spec_set=docker.Client)
    fake_container_id = 'fake_container_id'
    fake_mode = 'tcp'
    fake_url = 'tcp://fakehost:666'
    fake_timeout = 10

    mock_perform_tcp_healthcheck.return_value = True
    assert run_healthcheck_on_container(
        mock_docker_client, fake_container_id, fake_mode, fake_url, fake_timeout)
    assert mock_perform_tcp_healthcheck.call_count == 1
    mock_perform_tcp_healthcheck.assert_called_once_with(fake_url, fake_timeout)
def test_run_healthcheck_cmd_success(mock_sleep, mock_perform_cmd_healthcheck):
    mock_docker_client = mock.MagicMock(spec_set=docker.Client)
    fake_container_id = 'fake_container_id'
    fake_mode = 'cmd'
    fake_cmd = '/bin/true'
    fake_timeout = 10

    mock_perform_cmd_healthcheck.return_value = True
    assert run_healthcheck_on_container(mock_docker_client, fake_container_id,
                                        fake_mode, fake_cmd, fake_timeout)
    assert mock_perform_cmd_healthcheck.call_count == 1
    mock_perform_cmd_healthcheck.assert_called_once_with(
        mock_docker_client, fake_container_id, fake_cmd, fake_timeout)
def test_run_healthcheck_tcp_success(mock_sleep, mock_perform_tcp_healthcheck):
    mock_docker_client = mock.MagicMock(spec_set=docker.Client)
    fake_container_id = 'fake_container_id'
    fake_mode = 'tcp'
    fake_url = 'tcp://fakehost:666'
    fake_timeout = 10

    mock_perform_tcp_healthcheck.return_value = True
    assert run_healthcheck_on_container(mock_docker_client, fake_container_id,
                                        fake_mode, fake_url, fake_timeout)
    assert mock_perform_tcp_healthcheck.call_count == 1
    mock_perform_tcp_healthcheck.assert_called_once_with(
        fake_url, fake_timeout)
def test_run_healthcheck_http_fails(mock_sleep, mock_perform_http_healthcheck):
    mock_docker_client = mock.MagicMock(spec_set=docker.Client)
    fake_container_id = 'fake_container_id'
    fake_mode = 'http'
    fake_url = 'http://fakehost:666/fake_status_path'
    fake_timeout = 10

    mock_perform_http_healthcheck.return_value = False
    assert not run_healthcheck_on_container(
        mock_docker_client, fake_container_id, fake_mode, fake_url,
        fake_timeout)
    mock_perform_http_healthcheck.assert_called_once_with(
        fake_url, fake_timeout)