Skip to content
This repository was archived by the owner on Mar 6, 2026. It is now read-only.

Commit f3ddc14

Browse files
committed
Add additional unit test
1 parent a19f07e commit f3ddc14

1 file changed

Lines changed: 22 additions & 2 deletions

File tree

tests/unit/job/test_query.py

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ def test_cancelled(self):
309309

310310
self.assertTrue(job.cancelled())
311311

312-
def test_done(self):
312+
def test_done_job_complete(self):
313313
client = _make_client(project=self.PROJECT)
314314
resource = self._make_resource(ended=True)
315315
job = self._get_target_class().from_api_repr(resource, client)
@@ -357,7 +357,7 @@ def test_done_w_timeout_and_longer_internal_api_timeout(self):
357357
call_args = fake_reload.call_args
358358
self.assertAlmostEqual(call_args.kwargs.get("timeout"), expected_timeout)
359359

360-
def test_done_w_query_results_error_reload_ok(self):
360+
def test_done_w_query_results_error_reload_ok_job_finished(self):
361361
client = _make_client(project=self.PROJECT)
362362
bad_request_error = exceptions.BadRequest("Error in query")
363363
client._get_query_results = mock.Mock(side_effect=bad_request_error)
@@ -378,6 +378,26 @@ def fake_reload(self, *args, **kwargs):
378378
assert is_done
379379
assert isinstance(job._exception, exceptions.BadRequest)
380380

381+
def test_done_w_query_results_error_reload_ok_job_still_running(self):
382+
client = _make_client(project=self.PROJECT)
383+
retry_error = exceptions.RetryError("Too many retries", cause=TimeoutError)
384+
client._get_query_results = mock.Mock(side_effect=retry_error)
385+
386+
resource = self._make_resource(ended=False)
387+
job = self._get_target_class().from_api_repr(resource, client)
388+
job._exception = None
389+
390+
def fake_reload(self, *args, **kwargs):
391+
self._properties["status"]["state"] = "RUNNING"
392+
393+
fake_reload_method = types.MethodType(fake_reload, job)
394+
395+
with mock.patch.object(job, "reload", new=fake_reload_method):
396+
is_done = job.done()
397+
398+
assert not is_done
399+
assert job._exception is None
400+
381401
def test_done_w_query_results_error_reload_error(self):
382402
client = _make_client(project=self.PROJECT)
383403
bad_request_error = exceptions.BadRequest("Error in query")

0 commit comments

Comments
 (0)