def METHOD_NAME(self, api, mocker, time_mock, update_job_mock):
    """Manager should split failed jobs when they fail second time"""
    def update_job_behaviour():
        jobs[1].failed = True
        jobs[1].attempt_number = 2
        yield from range(10)
    update_job_mock.side_effect = update_job_behaviour()
    jobs = [
        mocker.Mock(spec=InsightAsyncJob, attempt_number=1, failed=False, completed=True),
        mocker.Mock(spec=InsightAsyncJob, attempt_number=1, failed=False, completed=False),
    ]
    sub_jobs = [
        mocker.Mock(spec=InsightAsyncJob, attempt_number=1, failed=False, completed=True),
        mocker.Mock(spec=InsightAsyncJob, attempt_number=1, failed=False, completed=True),
    ]
    sub_jobs[0].get_result.return_value = [1, 2]
    sub_jobs[1].get_result.return_value = [3, 4]
    jobs[1].split_job.return_value = sub_jobs
    manager = InsightAsyncJobManager(api=api, jobs=jobs)
    job = next(manager.completed_jobs(), None)
    assert job == jobs[0]
    jobs[1].split_job.assert_called_once()
    job = next(manager.completed_jobs(), None)
    assert isinstance(job, ParentAsyncJob)
    assert list(job.get_result()) == [1, 2, 3, 4]
    job = next(manager.completed_jobs(), None)
    assert job is None