def METHOD_NAME(mock_get_obj_type, event_loop, ignore_errors, expected):
    run_states = (state for state in ["succeeded", "failed", "unknown"])
    async def fake_run_until_completion(self):
        self.run_state = next(run_states)
    backfill.BackfillRun.run_until_completion = fake_run_until_completion
    dates = [TEST_DATETIME_1, TEST_DATETIME_2, TEST_DATETIME_3]
    mock_get_obj_type.return_value = client.TronObjectIdentifier("JOB", "a_url")
    backfill_runs = event_loop.run_until_complete(
        backfill.run_backfill_for_date_range("a_server", "a_job", dates, max_parallel=2, ignore_errors=ignore_errors,)
    )
    assert {br.run_state for br in backfill_runs} == expected