Skip to content

Commit 470c794

Browse files
tswastleahecole
authored andcommitted
BigQuery: Add Data Transfer Service quickstart. [(#1295)](#1295)
* BigQuery: Add Data Transfer Service quickstart. Client library docs: https://googlecloudplatform.github.io/google-cloud-python/latest/bigquery_datatransfer/index.html * Enable BigQuery Data Transfer API in test project. * Remove project from quickstart test assertion. Don't depend on specific data sources being available. I believe the reason the tests are failing is that the data sources weren't allowed for the test project because the API was enabled, but the project wasn't enrolled as described in https://cloud.google.com/bigquery/docs/enable-transfer-service
1 parent 5e20362 commit 470c794

File tree

3 files changed

+83
-0
lines changed

3 files changed

+83
-0
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
#!/usr/bin/env python
2+
3+
# Copyright 2017 Google LLC
4+
#
5+
# Licensed under the Apache License, Version 2.0 (the "License");
6+
# you may not use this file except in compliance with the License.
7+
# You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
17+
18+
def run_quickstart():
19+
# [START bigquery_datatransfer_quickstart]
20+
from google.cloud import bigquery_datatransfer
21+
22+
client = bigquery_datatransfer.DataTransferServiceClient()
23+
24+
project = 'my-project' # TODO: Update to your project ID.
25+
26+
# Get the full path to your project.
27+
parent = client.project_path(project)
28+
29+
print('Supported Data Sources:')
30+
31+
# Iterate over all possible data sources.
32+
for data_source in client.list_data_sources(parent):
33+
print('{}:'.format(data_source.display_name))
34+
print('\tID: {}'.format(data_source.data_source_id))
35+
print('\tFull path: {}'.format(data_source.name))
36+
print('\tDescription: {}'.format(data_source.description))
37+
# [END bigquery_datatransfer_quickstart]
38+
39+
40+
if __name__ == '__main__':
41+
run_quickstart()
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# Copyright 2017 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+
import os
16+
17+
import mock
18+
import pytest
19+
20+
import quickstart
21+
22+
23+
PROJECT = os.environ['GCLOUD_PROJECT']
24+
25+
26+
@pytest.fixture
27+
def mock_project_path():
28+
"""Mock out project and replace with project from environment."""
29+
project_patch = mock.patch(
30+
'google.cloud.bigquery_datatransfer.DataTransferServiceClient.'
31+
'project_path')
32+
33+
with project_patch as project_mock:
34+
project_mock.return_value = 'projects/{}'.format(PROJECT)
35+
yield project_mock
36+
37+
38+
def test_quickstart(capsys, mock_project_path):
39+
quickstart.run_quickstart()
40+
out, _ = capsys.readouterr()
41+
assert 'Supported Data Sources:' in out
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
google-cloud-bigquery-datatransfer==0.1.0

0 commit comments

Comments
 (0)