def test_cancel_defaults(self): resource = { "jobReference": { "jobId": self.JOB_ID, "projectId": self.PROJECT, "location": None, }, "configuration": { "test": True }, } response = {"job": resource} job = self._set_properties_job() job._properties["jobReference"]["location"] = self.LOCATION connection = job._client._connection = _make_connection(response) with mock.patch( "google.cloud.bigquery.opentelemetry_tracing._get_final_span_attributes" ) as final_attributes: self.assertTrue(job.cancel()) final_attributes.assert_called() connection.api_request.assert_called_once_with( method="POST", path="/projects/{}/jobs/{}/cancel".format(self.PROJECT, self.JOB_ID), query_params={"location": self.LOCATION}, timeout=None, ) self.assertEqual(job._properties, resource)
def test_cancel_explicit(self): other_project = "other-project-234" resource = { "jobReference": { "jobId": self.JOB_ID, "projectId": self.PROJECT, "location": None, }, "configuration": {"test": True}, } response = {"job": resource} job = self._set_properties_job() client = _make_client(project=other_project) connection = client._connection = _make_connection(response) with mock.patch( "google.cloud.bigquery.opentelemetry_tracing._get_final_span_attributes" ) as final_attributes: self.assertTrue(job.cancel(client=client, timeout=7.5)) final_attributes.assert_called_with( {"path": "/projects/{}/jobs/{}/cancel".format(self.PROJECT, self.JOB_ID)}, client, job, ) connection.api_request.assert_called_once_with( method="POST", path="/projects/{}/jobs/{}/cancel".format(self.PROJECT, self.JOB_ID), query_params={}, timeout=7.5, ) self.assertEqual(job._properties, resource)
def test_cancel_w_bound_client(self): PATH = "/projects/%s/jobs/%s/cancel" % (self.PROJECT, self.JOB_ID) RESOURCE = self._make_resource(ended=True) RESPONSE = {"job": RESOURCE} conn = _make_connection(RESPONSE) client = _make_client(project=self.PROJECT, connection=conn) job = self._make_one(self.JOB_ID, [self.SOURCE1], self.TABLE_REF, client) with mock.patch( "google.cloud.bigquery.opentelemetry_tracing._get_final_span_attributes" ) as final_attributes: job.cancel() final_attributes.assert_called_with({"path": PATH}, client, job) conn.api_request.assert_called_once_with(method="POST", path=PATH, query_params={}, timeout=None) self._verifyResourceProperties(job, RESOURCE)
def test_cancel_w_custom_retry(self): from google.cloud.bigquery.retry import DEFAULT_RETRY api_path = "/projects/{}/jobs/{}/cancel".format( self.PROJECT, self.JOB_ID) resource = { "jobReference": { "jobId": self.JOB_ID, "projectId": self.PROJECT, "location": None, }, "configuration": { "test": True }, } response = {"job": resource} job = self._set_properties_job() api_request_patcher = mock.patch.object( job._client._connection, "api_request", side_effect=[ValueError, response]) retry = DEFAULT_RETRY.with_deadline(1).with_predicate( lambda exc: isinstance(exc, ValueError)) with api_request_patcher as fake_api_request: with mock.patch( "google.cloud.bigquery.opentelemetry_tracing._get_final_span_attributes" ) as final_attributes: result = job.cancel(retry=retry, timeout=7.5) final_attributes.assert_called() self.assertTrue(result) self.assertEqual(job._properties, resource) self.assertEqual( fake_api_request.call_args_list, [ mock.call( method="POST", path=api_path, query_params={}, timeout=7.5), mock.call( method="POST", path=api_path, query_params={}, timeout=7.5), # was retried once ], )