def test_cancel_w_job_reference(self): from google.cloud.bigquery import job resource = self._make_resource(ended=True) resource["jobReference"]["projectId"] = "alternative-project" resource["jobReference"]["location"] = "US" job_ref = job._JobReference(self.JOB_ID, "alternative-project", "US") conn = _make_connection({"job": resource}) client = _make_client(project=self.PROJECT, connection=conn) load_job = self._make_one(job_ref, [self.SOURCE1], self.TABLE_REF, client) with mock.patch( "google.cloud.bigquery.opentelemetry_tracing._get_final_span_attributes" ) as final_attributes: load_job.cancel() final_attributes.assert_called_with( { "path": "/projects/alternative-project/jobs/{}/cancel".format( self.JOB_ID) }, client, load_job, ) conn.api_request.assert_called_once_with( method="POST", path="/projects/alternative-project/jobs/{}/cancel".format( self.JOB_ID), query_params={"location": "US"}, timeout=None, )
def test_exists_miss_w_job_reference(self): from google.cloud.bigquery import job job_ref = job._JobReference("my-job-id", "other-project", "US") conn = _make_connection() client = _make_client(project=self.PROJECT, connection=conn) load_job = self._make_one(job_ref, [self.SOURCE1], self.TABLE_REF, client) with mock.patch( "google.cloud.bigquery.opentelemetry_tracing._get_final_span_attributes" ) as final_attributes: self.assertFalse(load_job.exists()) final_attributes.assert_called_with( {"path": "/projects/other-project/jobs/my-job-id"}, client, load_job) conn.api_request.assert_called_once_with( method="GET", path="/projects/other-project/jobs/my-job-id", query_params={ "fields": "id", "location": "US" }, timeout=None, )
def test_begin_w_job_reference(self): from google.cloud.bigquery import job resource = self._make_resource() resource["jobReference"]["projectId"] = "alternative-project" resource["jobReference"]["location"] = "US" job_ref = job._JobReference(self.JOB_ID, "alternative-project", "US") conn = _make_connection(resource) client = _make_client(project=self.PROJECT, connection=conn) load_job = self._make_one(job_ref, [self.SOURCE1], self.TABLE_REF, client) with mock.patch( "google.cloud.bigquery.opentelemetry_tracing._get_final_span_attributes" ) as final_attributes: load_job._begin() final_attributes.assert_called_with( {"path": "/projects/alternative-project/jobs"}, client, load_job) conn.api_request.assert_called_once() _, request = conn.api_request.call_args self.assertEqual(request["method"], "POST") self.assertEqual(request["path"], "/projects/alternative-project/jobs") self.assertEqual(request["data"]["jobReference"]["projectId"], "alternative-project") self.assertEqual(request["data"]["jobReference"]["location"], "US") self.assertEqual(request["data"]["jobReference"]["jobId"], self.JOB_ID)
def test_ctor_w_job_reference(self): from google.cloud.bigquery import job client = _make_client(project=self.PROJECT) job_ref = job._JobReference(self.JOB_ID, "alternative-project", "US") load_job = self._make_one(job_ref, [self.SOURCE1], self.TABLE_REF, client) self.assertEqual(load_job.project, "alternative-project") self.assertEqual(load_job.location, "US")
def test_default_no_data_leakage(setup): import google.auth.credentials from google.cloud.bigquery import client from google.cloud.bigquery import job mock_credentials = mock.Mock(spec=google.auth.credentials.Credentials) test_client = client.Client(project="test_project", credentials=mock_credentials, location="test_location") expected_attributes = { "foo": "baz", "db.system": "BigQuery", "db.name": "test_project", "location": "test_location", } with opentelemetry_tracing.create_span(TEST_SPAN_NAME, attributes=TEST_SPAN_ATTRIBUTES, client=test_client) as span: assert span.name == TEST_SPAN_NAME assert span.attributes == expected_attributes test_job_reference = job._JobReference(job_id="test_job_id", project="test_project_id", location="test_location") test_client = client.Client(project="test_project", credentials=mock_credentials, location="test_location") test_job = job._AsyncJob(job_id=test_job_reference, client=test_client) expected_attributes = { "db.system": "BigQuery", "db.name": "test_project_id", "location": "test_location", "num_child_jobs": 0, "job_id": "test_job_id", "foo": "baz", "hasErrors": False, } with opentelemetry_tracing.create_span(TEST_SPAN_NAME, attributes=TEST_SPAN_ATTRIBUTES, job_ref=test_job) as span: assert span.name == TEST_SPAN_NAME assert span.attributes == expected_attributes
def _job_reference(job_id, project, location): from google.cloud.bigquery import job return job._JobReference(job_id, project, location)