Пример #1
0
def test_job_is_stuck_when_not_running_yet(mock_chronos_client):
    last_time_run = datetime.now(pytz.utc) - timedelta(hours=4)
    interval = 60 * 60 * 24

    assert not check_chronos_jobs.job_is_stuck(
        last_time_run.isoformat(), interval, mock_chronos_client, "job_name")
    mock_chronos_client.job_stat.assert_not_called()
Пример #2
0
def test_job_is_stuck_when_no_interval(mock_chronos_client):
    interval = None

    assert not check_chronos_jobs.job_is_stuck(
        '2016-07-26T22:03:00+00:00',
        interval,
        mock_chronos_client,
        'job_name',
    )
    mock_chronos_client.job_stat.assert_not_called()
Пример #3
0
def test_job_is_stuck_when_late(mock_chronos_client):
    last_time_run = datetime.now(pytz.utc) - timedelta(hours=25)
    interval = 60 * 60 * 24
    mock_chronos_client.job_stat.return_value = {
        "histogram": {
            "99thPercentile": 60 * 30
        }
    }

    assert check_chronos_jobs.job_is_stuck(last_time_run.isoformat(), interval,
                                           mock_chronos_client, "job_name")
    mock_chronos_client.job_stat.assert_called_once_with("job_name")
Пример #4
0
def test_job_is_stuck_on_really_long_jobs(mock_chronos_client):
    """A daily job last run 48 hours ago should be considered stuck
    even if chronos says it normally takes 14 days to complete"""
    last_time_run = datetime.now(pytz.utc) - timedelta(hours=48)
    interval = 60 * 60 * 24
    mock_chronos_client.job_stat.return_value = {
        "histogram": {
            "99thPercentile": 60 * 60 * 24 * 14
        }
    }

    assert check_chronos_jobs.job_is_stuck(last_time_run.isoformat(), interval,
                                           mock_chronos_client, "job_name")
    mock_chronos_client.job_stat.assert_called_once_with("job_name")
Пример #5
0
def test_job_is_stuck_when_no_last_run(mock_chronos_client):
    assert not check_chronos_jobs.job_is_stuck(None, 2440, mock_chronos_client,
                                               'job_name')
    mock_chronos_client.job_stat.assert_not_called()
Пример #6
0
def test_job_is_stuck_when_stuck():
    last_time_run = datetime.now(pytz.utc) - timedelta(hours=25)
    assert check_chronos_jobs.job_is_stuck(last_time_run.isoformat(), 60 * 60 * 24)
Пример #7
0
def test_job_is_stuck_when_no_last_run():
    assert not check_chronos_jobs.job_is_stuck(None, 2440)
Пример #8
0
def test_job_is_stuck_when_no_interval():
    assert not check_chronos_jobs.job_is_stuck('2016-07-26T22:03:00+00:00', None)