def test_reload_explicit(self): from google.cloud.bigquery.retry import DEFAULT_RETRY other_project = "other-project-234" resource = { "jobReference": { "jobId": self.JOB_ID, "projectId": self.PROJECT, "location": None, }, "configuration": { "test": True }, } job = self._set_properties_job() client = _make_client(project=other_project) call_api = client._call_api = mock.Mock() call_api.return_value = resource retry = DEFAULT_RETRY.with_deadline(1) job.reload(client=client, retry=retry, timeout=4.2) call_api.assert_called_once_with( retry, span_name="BigQuery.job.reload", span_attributes={ "path": "/projects/{}/jobs/{}".format(self.PROJECT, self.JOB_ID) }, job_ref=job, method="GET", path="/projects/{}/jobs/{}".format(self.PROJECT, self.JOB_ID), query_params={}, timeout=4.2, ) self.assertEqual(job._properties, resource)
def test_reload_defaults(self): from google.cloud.bigquery.retry import DEFAULT_RETRY resource = { "jobReference": { "jobId": self.JOB_ID, "projectId": self.PROJECT, "location": None, }, "configuration": { "test": True }, } job = self._set_properties_job() job._properties["jobReference"]["location"] = self.LOCATION call_api = job._client._call_api = mock.Mock() call_api.return_value = resource job.reload() call_api.assert_called_once_with( DEFAULT_RETRY, span_name="BigQuery.job.reload", span_attributes={ "path": "/projects/{}/jobs/{}".format(self.PROJECT, self.JOB_ID) }, job_ref=job, method="GET", path="/projects/{}/jobs/{}".format(self.PROJECT, self.JOB_ID), query_params={"location": self.LOCATION}, timeout=None, ) self.assertEqual(job._properties, resource)
def test_reload_w_alternate_client(self): from google.cloud.bigquery.dataset import DatasetReference PATH = "/projects/%s/jobs/%s" % (self.PROJECT, self.JOB_ID) RESOURCE = self._make_resource() conn1 = _make_connection() client1 = _make_client(project=self.PROJECT, connection=conn1) conn2 = _make_connection(RESOURCE) client2 = _make_client(project=self.PROJECT, connection=conn2) source_dataset = DatasetReference(self.PROJECT, self.DS_ID) source = source_dataset.table(self.SOURCE_TABLE) job = self._make_one(self.JOB_ID, source, [self.DESTINATION_URI], client1) with mock.patch( "google.cloud.bigquery.opentelemetry_tracing._get_final_span_attributes" ) as final_attributes: job.reload(client=client2) final_attributes.assert_called_with({"path": PATH}, client2, job) conn1.api_request.assert_not_called() conn2.api_request.assert_called_once_with(method="GET", path=PATH, query_params={}, timeout=None) self._verifyResourceProperties(job, RESOURCE)
def wait_for_job(job): while True: job.reload() # Refreshes the state via a GET request. if job.state == 'DONE': if job.error_result: raise RuntimeError(job.errors) return time.sleep(1)
def wait_for_job(self, job): while True: job.reload() if job.state == 'DONE': if job.error_result: raise RuntimeError(job.errors) return time.sleep(1)
def wait_for_job(job): while True: job.reload() # Refreshes the state via a GET request. if job.state == 'DONE': if job.error_result: raise RuntimeError(job.error_result) return time.sleep(1)
def wait_for_job(self,job): """ Blocking poll for query status """ if self.verbose: print("Waiting for results...") while True: job.reload() # Retry the job every second until it finishes. Throw an exception if it fails. if job.state == 'DONE': if job.error_result: raise RuntimeError(job.errors) return time.sleep(1)
def test_reload_w_bound_client(self): PATH = "/projects/%s/jobs/%s" % (self.PROJECT, self.JOB_ID) RESOURCE = self._make_resource() conn = _make_connection(RESOURCE) 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.reload() final_attributes.assert_called_with({"path": PATH}, client, job) conn.api_request.assert_called_once_with(method="GET", path=PATH, query_params={}, timeout=None) self._verifyResourceProperties(job, RESOURCE)