diff --git a/bigquery/docs/samples b/bigquery/docs/samples new file mode 120000 index 000000000000..18cd9a30aaff --- /dev/null +++ b/bigquery/docs/samples @@ -0,0 +1 @@ +../samples/ \ No newline at end of file diff --git a/bigquery/docs/snippets.py b/bigquery/docs/snippets.py index 00569c40af18..8836c8790ee9 100644 --- a/bigquery/docs/snippets.py +++ b/bigquery/docs/snippets.py @@ -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) diff --git a/bigquery/docs/usage/tables.rst b/bigquery/docs/usage/tables.rst index 555366fd2a4b..0da02a173828 100644 --- a/bigquery/docs/usage/tables.rst +++ b/bigquery/docs/usage/tables.rst @@ -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] diff --git a/bigquery/samples/create_table.py b/bigquery/samples/create_table.py new file mode 100644 index 000000000000..5e2e34d41d99 --- /dev/null +++ b/bigquery/samples/create_table.py @@ -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] diff --git a/bigquery/samples/tests/conftest.py b/bigquery/samples/tests/conftest.py index 1543e1fdcd0a..ca7e9081a416 100644 --- a/bigquery/samples/tests/conftest.py +++ b/bigquery/samples/tests/conftest.py @@ -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() diff --git a/bigquery/samples/tests/test_table_samples.py b/bigquery/samples/tests/test_table_samples.py new file mode 100644 index 000000000000..903f76b536ea --- /dev/null +++ b/bigquery/samples/tests/test_table_samples.py @@ -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