

@pytest.mark.parametrize('next_run_time', [datetime(2013, 8, 13), None], ids=['earlier', 'null'])
@pytest.mark.parametrize('index', [0, 1, 2], ids=['first', 'middle', 'last'])
def test_update_job_clear_next_runtime(jobstore, create_add_job, next_run_time, timezone, index):
    '\n    Tests that update_job() maintains the proper ordering of the jobs,\n    even when their next run times are initially the same.\n\n    '
    jobs = [create_add_job(jobstore, dummy_job, datetime(2014, 2, 26), ('job%d' % i)) for i in range(3)]
    jobs[index].next_run_time = (timezone.localize(next_run_time) if jobstore else None)
    jobstore.update_job(jobs[index])
    due_date = timezone.localize(datetime(2014, 2, 27))
    due_jobs = jobstore.get_due_jobs(due_date)
    assert (len(due_jobs) == (3 if next_run_time else 2))
    due_job_ids = [job.id for job in due_jobs]
    if next_run_time:
        if (index == 0):
            assert (due_job_ids == ['job0', 'job1', 'job2'])
        elif (index == 1):
            assert (due_job_ids == ['job1', 'job0', 'job2'])
        else:
            assert (due_job_ids == ['job2', 'job0', 'job1'])
    elif (index == 0):
        assert (due_job_ids == ['job1', 'job2'])
    elif (index == 1):
        assert (due_job_ids == ['job0', 'job2'])
    else:
        assert (due_job_ids == ['job0', 'job1'])

dataset/ETHPy150Open agronholm/apscheduler/tests/test_jobstores.py test_update_job_clear_next_runtime/VarMisuse@127/232 `next_run_time`->`jobstore`