Skip to content

Commit 8edc10d

Browse files
authored
docs: show common job properties in get_job and cancel_job samples (#1137)
* docs: show common job properties in `get_job` and `cancel_job` samples * flake8
1 parent 8712b6f commit 8edc10d

File tree

4 files changed

+99
-0
lines changed

4 files changed

+99
-0
lines changed

docs/snippets.py

+1
Original file line numberDiff line numberDiff line change
@@ -757,6 +757,7 @@ def test_client_query_total_rows(client, capsys):
757757

758758

759759
def test_manage_job(client):
760+
# TODO(b/199162556): delete after migrating docs
760761
sql = """
761762
SELECT corpus
762763
FROM `bigquery-public-data.samples.shakespeare`

samples/snippets/manage_job_cancel.py

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Copyright 2016-2022 Google LLC
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
# [START bigquery_cancel_job]
16+
from google.cloud import bigquery
17+
18+
19+
def cancel_job(
20+
client: bigquery.Client, location: str = "us", job_id: str = "abcd-efgh-ijkl-mnop",
21+
):
22+
job = client.cancel_job(job_id, location=location)
23+
print(f"{job.location}:{job.job_id} cancelled")
24+
25+
26+
# [END bigquery_cancel_job]

samples/snippets/manage_job_get.py

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Copyright 2016-2022 Google LLC
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
# [START bigquery_get_job]
16+
from google.cloud import bigquery
17+
18+
19+
def get_job(
20+
client: bigquery.Client, location: str = "us", job_id: str = "abcd-efgh-ijkl-mnop",
21+
):
22+
job = client.get_job(job_id, location=location)
23+
24+
# All job classes have "location" and "job_id" string properties.
25+
# Use these properties for job operations such as "cancel_job" and
26+
# "delete_job".
27+
print(f"{job.location}:{job.job_id}")
28+
print(f"Type: {job.job_type}")
29+
print(f"State: {job.state}")
30+
print(f"Created: {job.created.isoformat()}")
31+
32+
33+
# [END bigquery_get_job]

samples/snippets/manage_job_test.py

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Copyright 2022 Google LLC
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
from google.cloud import bigquery
16+
import pytest
17+
18+
import manage_job_cancel
19+
import manage_job_get
20+
21+
22+
def test_manage_job(capsys: pytest.CaptureFixture):
23+
client = bigquery.Client()
24+
sql = """
25+
SELECT corpus
26+
FROM `bigquery-public-data.samples.shakespeare`
27+
GROUP BY corpus;
28+
"""
29+
location = "us"
30+
job = client.query(sql, location=location)
31+
32+
manage_job_cancel.cancel_job(client, location=location, job_id=job.job_id)
33+
out, _ = capsys.readouterr()
34+
assert f"{job.location}:{job.job_id} cancelled" in out
35+
36+
manage_job_get.get_job(client, location=location, job_id=job.job_id)
37+
out, _ = capsys.readouterr()
38+
assert f"{job.location}:{job.job_id}" in out
39+
assert "Type: query" in out

0 commit comments

Comments
 (0)