@@ -147,6 +147,32 @@ def test_list_datasets(client):
147147 # [END bigquery_list_datasets]
148148
149149
150+ def test_list_datasets_by_label (client , to_delete ):
151+ dataset_id = 'list_datasets_by_label_{}' .format (_millis ())
152+ dataset = bigquery .Dataset (client .dataset (dataset_id ))
153+ dataset .labels = {'color' : 'green' }
154+ dataset = client .create_dataset (dataset ) # API request
155+ to_delete .append (dataset )
156+
157+ # [START bigquery_list_datasets_by_label]
158+ # from google.cloud import bigquery
159+ # client = bigquery.Client()
160+
161+ # The following label filter example will find datasets with an
162+ # arbitrary 'color' label set to 'green'
163+ label_filter = 'labels.color:green'
164+ datasets = list (client .list_datasets (filter = label_filter ))
165+
166+ if datasets :
167+ print ('Datasets filtered by {}:' .format (label_filter ))
168+ for dataset in datasets : # API request(s)
169+ print ('\t {}' .format (dataset .dataset_id ))
170+ else :
171+ print ('No datasets found with this filter.' )
172+ # [END bigquery_list_datasets_by_label]
173+ assert len (datasets ) == 1
174+
175+
150176def test_create_dataset (client , to_delete ):
151177 """Create a dataset."""
152178 dataset_id = 'create_dataset_{}' .format (_millis ())
@@ -194,11 +220,16 @@ def test_get_dataset_information(client, to_delete):
194220 dataset = client .get_dataset (dataset_ref ) # API request
195221
196222 # View dataset properties
197- print ('Dataset ID: ' .format (dataset_id ))
198- print ('Description: ' .format (dataset .description ))
223+ print ('Dataset ID: {} ' .format (dataset_id ))
224+ print ('Description: {} ' .format (dataset .description ))
199225 print ('Labels:' )
200- for label , value in dataset .labels .items ():
201- print ('\t {}: {}' .format (label , value ))
226+ labels = dataset .labels
227+ if labels :
228+ for label , value in labels .items ():
229+ print ('\t {}: {}' .format (label , value ))
230+ else :
231+ print ("\t Dataset has no labels defined." )
232+
202233 # View tables in dataset
203234 print ('Tables:' )
204235 tables = list (client .list_tables (dataset_ref )) # API request(s)
@@ -296,9 +327,8 @@ def test_update_dataset_default_table_expiration(client, to_delete):
296327 # [END bigquery_update_dataset_expiration]
297328
298329
299- def test_update_dataset_labels (client , to_delete ):
300- """Update a dataset's metadata."""
301- dataset_id = 'update_dataset_multiple_properties_{}' .format (_millis ())
330+ def test_manage_dataset_labels (client , to_delete ):
331+ dataset_id = 'label_dataset_{}' .format (_millis ())
302332 dataset = bigquery .Dataset (client .dataset (dataset_id ))
303333 dataset = client .create_dataset (dataset )
304334 to_delete .append (dataset )
@@ -318,6 +348,41 @@ def test_update_dataset_labels(client, to_delete):
318348 assert dataset .labels == labels
319349 # [END bigquery_label_dataset]
320350
351+ # [START bigquery_get_dataset_labels]
352+ # from google.cloud import bigquery
353+ # client = bigquery.Client()
354+ # dataset_id = 'my_dataset'
355+
356+ dataset_ref = client .dataset (dataset_id )
357+ dataset = client .get_dataset (dataset_ref ) # API request
358+
359+ # View dataset labels
360+ print ('Dataset ID: {}' .format (dataset_id ))
361+ print ('Labels:' )
362+ if dataset .labels :
363+ for label , value in dataset .labels .items ():
364+ print ('\t {}: {}' .format (label , value ))
365+ else :
366+ print ("\t Dataset has no labels defined." )
367+ # [END bigquery_get_dataset_labels]
368+ assert dataset .labels == labels
369+
370+ # [START bigquery_delete_label_dataset]
371+ # from google.cloud import bigquery
372+ # client = bigquery.Client()
373+ # dataset_ref = client.dataset('my_dataset')
374+ # dataset = client.get_dataset(dataset_ref) # API request
375+
376+ # This example dataset starts with one label
377+ assert dataset .labels == {'color' : 'green' }
378+ # To delete a label from a dataset, set its value to None
379+ dataset .labels ['color' ] = None
380+
381+ dataset = client .update_dataset (dataset , ['labels' ]) # API request
382+
383+ assert dataset .labels == {}
384+ # [END bigquery_delete_label_dataset]
385+
321386
322387def test_update_dataset_access (client , to_delete ):
323388 """Update a dataset's access controls."""
@@ -480,16 +545,17 @@ def test_create_table_then_add_schema(client, to_delete):
480545
481546
482547def test_create_table_cmek (client , to_delete ):
483- DATASET_ID = 'create_table_cmek_{}' .format (_millis ())
484- dataset = bigquery .Dataset (client .dataset (DATASET_ID ))
548+ dataset_id = 'create_table_cmek_{}' .format (_millis ())
549+ dataset = bigquery .Dataset (client .dataset (dataset_id ))
485550 client .create_dataset (dataset )
486551 to_delete .append (dataset )
487552
488553 # [START bigquery_create_table_cmek]
489554 # from google.cloud import bigquery
490555 # client = bigquery.Client()
556+ # dataset_id = 'my_dataset'
491557
492- table_ref = dataset .table ('my_table' )
558+ table_ref = client . dataset ( dataset_id ) .table ('my_table' )
493559 table = bigquery .Table (table_ref )
494560
495561 # Set the encryption key to use for the table.
@@ -696,6 +762,70 @@ def test_table_exists(client, to_delete):
696762 assert not table_exists (client , dataset .table ('i_dont_exist' ))
697763
698764
765+ def test_manage_table_labels (client , to_delete ):
766+ dataset_id = 'label_table_dataset_{}' .format (_millis ())
767+ table_id = 'label_table_{}' .format (_millis ())
768+ dataset = bigquery .Dataset (client .dataset (dataset_id ))
769+ client .create_dataset (dataset )
770+ to_delete .append (dataset )
771+
772+ table = bigquery .Table (dataset .table (table_id ), schema = SCHEMA )
773+ table = client .create_table (table )
774+ to_delete .insert (0 , table )
775+
776+ # [START bigquery_label_table]
777+ # from google.cloud import bigquery
778+ # client = bigquery.Client()
779+ # table_ref = client.dataset('my_dataset').table('my_table')
780+ # table = client.get_table(table_ref) # API request
781+
782+ assert table .labels == {}
783+ labels = {'color' : 'green' }
784+ table .labels = labels
785+
786+ table = client .update_table (table , ['labels' ]) # API request
787+
788+ assert table .labels == labels
789+ # [END bigquery_label_table]
790+
791+ # [START bigquery_get_table_labels]
792+ # from google.cloud import bigquery
793+ # client = bigquery.Client()
794+ # dataset_id = 'my_dataset'
795+ # table_id = 'my_table'
796+
797+ dataset_ref = client .dataset (dataset_id )
798+ table_ref = dataset_ref .table (table_id )
799+ table = client .get_table (table_ref ) # API Request
800+
801+ # View table labels
802+ print ('Table ID: {}' .format (table_id ))
803+ print ('Labels:' )
804+ if table .labels :
805+ for label , value in table .labels .items ():
806+ print ('\t {}: {}' .format (label , value ))
807+ else :
808+ print ("\t Table has no labels defined." )
809+ # [END bigquery_get_table_labels]
810+ assert table .labels == labels
811+
812+ # [START bigquery_delete_label_table]
813+ # from google.cloud import bigquery
814+ # client = bigquery.Client()
815+ # table_ref = client.dataset('my_dataset').table('my_table')
816+ # table = client.get_table(table_ref) # API request
817+
818+ # This example table starts with one label
819+ assert table .labels == {'color' : 'green' }
820+ # To delete a label from a table, set its value to None
821+ table .labels ['color' ] = None
822+
823+ table = client .update_table (table , ['labels' ]) # API request
824+
825+ assert table .labels == {}
826+ # [END bigquery_delete_label_table]
827+
828+
699829def test_update_table_description (client , to_delete ):
700830 """Update a table's description."""
701831 dataset_id = 'update_table_description_dataset_{}' .format (_millis ())
@@ -2291,6 +2421,30 @@ def test_client_query_dry_run(client):
22912421 assert query_job .total_bytes_processed > 0
22922422
22932423
2424+ def test_query_no_cache (client ):
2425+ # [START bigquery_query_no_cache]
2426+ # from google.cloud import bigquery
2427+ # client = bigquery.Client()
2428+
2429+ job_config = bigquery .QueryJobConfig ()
2430+ job_config .use_query_cache = False
2431+ sql = """
2432+ SELECT corpus
2433+ FROM `bigquery-public-data.samples.shakespeare`
2434+ GROUP BY corpus;
2435+ """
2436+ query_job = client .query (
2437+ sql ,
2438+ # Location must match that of the dataset(s) referenced in the query.
2439+ location = 'US' ,
2440+ job_config = job_config ) # API request
2441+
2442+ # Print the results.
2443+ for row in query_job : # API request - fetches results
2444+ print (row )
2445+ # [END bigquery_query_no_cache]
2446+
2447+
22942448def test_client_list_jobs (client ):
22952449 """List jobs for a project."""
22962450
0 commit comments