Skip to content

Commit

Permalink
Move create table sample to samples directory
Browse files Browse the repository at this point in the history
* Add `samples/create_table.py` sample code.

* Remove `test_create_table` from snippets collection.
  • Loading branch information
lbristol88 authored and tswast committed Apr 2, 2019
1 parent 20807c4 commit 2972c61
Show file tree
Hide file tree
Showing 6 changed files with 70 additions and 26 deletions.
1 change: 1 addition & 0 deletions bigquery/docs/samples
25 changes: 0 additions & 25 deletions bigquery/docs/snippets.py
Original file line number Diff line number Diff line change
Expand Up @@ -522,31 +522,6 @@ def test_list_tables(client, to_delete):
# [END bigquery_list_tables]


def test_create_table(client, to_delete):
"""Create a table."""
dataset_id = "create_table_dataset_{}".format(_millis())
dataset_ref = client.dataset(dataset_id)
dataset = bigquery.Dataset(dataset_ref)
client.create_dataset(dataset)
to_delete.append(dataset)

# [START bigquery_create_table]
# from google.cloud import bigquery
# client = bigquery.Client()
# dataset_ref = client.dataset('my_dataset')

schema = [
bigquery.SchemaField("full_name", "STRING", mode="REQUIRED"),
bigquery.SchemaField("age", "INTEGER", mode="REQUIRED"),
]
table_ref = dataset_ref.table("my_table")
table = bigquery.Table(table_ref, schema=schema)
table = client.create_table(table) # API request

assert table.table_id == "my_table"
# [END bigquery_create_table]


def test_create_table_nested_repeated_schema(client, to_delete):
dataset_id = "create_table_nested_repeated_{}".format(_millis())
dataset_ref = client.dataset(dataset_id)
Expand Down
2 changes: 1 addition & 1 deletion bigquery/docs/usage/tables.rst
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ Creating a Table
Create an empty table with the
:func:`~google.cloud.bigquery.client.Client.create_table` method:

.. literalinclude:: ../snippets.py
.. literalinclude:: ../samples/create_table.py
:language: python
:dedent: 4
:start-after: [START bigquery_create_table]
Expand Down
37 changes: 37 additions & 0 deletions bigquery/samples/create_table.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Copyright 2019 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.


def create_table(client, table_id):

# [START bigquery_create_table]
from google.cloud import bigquery

schema = [
bigquery.SchemaField("full_name", "STRING", mode="REQUIRED"),
bigquery.SchemaField("age", "INTEGER", mode="REQUIRED"),
]

# TODO(developer): Construct a BigQuery client object.
# client = bigquery.Client()

# TODO(developer): Set table_id to the ID of the table to create
# table_id = "your-project.your_dataset.your_table_name"

table = bigquery.Table(table_id, schema=schema)
table = client.create_table(table) # API request
print(
"Created table {}.{}.{}".format(table.project, table.dataset_id, table.table_id)
)
# [END bigquery_create_table]
9 changes: 9 additions & 0 deletions bigquery/samples/tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,15 @@ def client():
return bigquery.Client()


@pytest.fixture
def random_table_id(client, dataset_id):
now = datetime.datetime.now()
random_table_id = "example_table_{}_{}".format(
now.strftime("%Y%m%d%H%M%S"), uuid.uuid4().hex[:8]
)
return "{}.{}".format(dataset_id, random_table_id)


@pytest.fixture
def dataset_id(client):
now = datetime.datetime.now()
Expand Down
22 changes: 22 additions & 0 deletions bigquery/samples/tests/test_table_samples.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Copyright 2019 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

from .. import create_table


def test_create_table(capsys, client, random_table_id):

create_table.create_table(client, random_table_id)
out, err = capsys.readouterr()
assert "Created table {}".format(random_table_id) in out

0 comments on commit 2972c61

Please sign in to comment.