24
24
import datetime
25
25
import logging
26
26
import secrets
27
- import time as mod_time
27
+ import time
28
28
import unittest
29
29
import uuid
30
30
from decimal import Decimal
@@ -99,7 +99,7 @@ def setUpClass(cls):
99
99
100
100
cls .bigquery_client = BigQueryWrapper ()
101
101
cls .dataset_id = '%s%d%s' % (
102
- cls .BIG_QUERY_DATASET_ID , int (mod_time .time ()), secrets .token_hex (3 ))
102
+ cls .BIG_QUERY_DATASET_ID , int (time .time ()), secrets .token_hex (3 ))
103
103
cls .bigquery_client .get_or_create_dataset (cls .project , cls .dataset_id )
104
104
_LOGGER .info (
105
105
"Created dataset %s in project %s" , cls .dataset_id , cls .project )
@@ -158,9 +158,11 @@ def create_table(cls, table_name):
158
158
request = bigquery .BigqueryTablesInsertRequest (
159
159
projectId = cls .project , datasetId = cls .dataset_id , table = table )
160
160
cls .bigquery_client .client .tables .Insert (request )
161
+ # Call get_table so that we wait until the table is visible.
162
+ _ = cls .bigquery_client .get_table (
163
+ cls .project , cls .dataset_id , table_name )
161
164
cls .bigquery_client .insert_rows (
162
165
cls .project , cls .dataset_id , table_name , cls .TABLE_DATA )
163
- mod_time .sleep (10 )
164
166
165
167
@skip (['PortableRunner' , 'FlinkRunner' ])
166
168
@pytest .mark .it_postcommit
@@ -333,7 +335,7 @@ class ReadUsingStorageApiTests(BigQueryReadIntegrationTests):
333
335
def setUpClass (cls ):
334
336
super (ReadUsingStorageApiTests , cls ).setUpClass ()
335
337
cls .table_name = '%s%d%s' % (
336
- cls .BIG_QUERY_DATASET_ID , int (mod_time .time ()), secrets .token_hex (3 ))
338
+ cls .BIG_QUERY_DATASET_ID , int (time .time ()), secrets .token_hex (3 ))
337
339
cls ._create_table (cls .table_name )
338
340
339
341
table_id = '{}.{}' .format (cls .dataset_id , cls .table_name )
@@ -396,9 +398,11 @@ def _create_table(cls, table_name):
396
398
request = bigquery .BigqueryTablesInsertRequest (
397
399
projectId = cls .project , datasetId = cls .dataset_id , table = table )
398
400
cls .bigquery_client .client .tables .Insert (request )
401
+ # Call get_table so that we wait until the table is visible.
402
+ _ = cls .bigquery_client .get_table (
403
+ cls .project , cls .dataset_id , table_name )
399
404
cls .bigquery_client .insert_rows (
400
405
cls .project , cls .dataset_id , table_name , cls .TABLE_DATA )
401
- mod_time .sleep (10 )
402
406
403
407
@classmethod
404
408
def _setup_temporary_dataset (cls , project , query ):
@@ -411,7 +415,7 @@ def _execute_query(cls, project, query):
411
415
'materializing_table_before_reading' ,
412
416
str (uuid .uuid4 ())[0 :10 ],
413
417
bigquery_tools .BigQueryJobTypes .QUERY ,
414
- '%d_%s' % (int (mod_time .time ()), secrets .token_hex (3 )))
418
+ '%d_%s' % (int (time .time ()), secrets .token_hex (3 )))
415
419
cls ._setup_temporary_dataset (cls .project , cls .query )
416
420
job = cls .bigquery_client ._start_query_job (
417
421
project ,
@@ -658,6 +662,9 @@ def create_table(cls, table_name):
658
662
request = bigquery .BigqueryTablesInsertRequest (
659
663
projectId = cls .project , datasetId = cls .dataset_id , table = table )
660
664
cls .bigquery_client .client .tables .Insert (request )
665
+ # Call get_table so that we wait until the table is visible.
666
+ _ = cls .bigquery_client .get_table (
667
+ cls .project , cls .dataset_id , table_name )
661
668
row_data = {
662
669
'float' : 0.33 ,
663
670
'numeric' : Decimal ('10' ),
@@ -676,7 +683,6 @@ def create_table(cls, table_name):
676
683
677
684
cls .bigquery_client .insert_rows (
678
685
cls .project , cls .dataset_id , table_name , table_data )
679
- mod_time .sleep (10 )
680
686
681
687
def get_expected_data (self , native = True ):
682
688
byts = b'\xab \xac '
@@ -782,9 +788,11 @@ def create_table(cls, table_name, data, table_schema):
782
788
request = bigquery .BigqueryTablesInsertRequest (
783
789
projectId = cls .project , datasetId = cls .dataset_id , table = table )
784
790
cls .bigquery_client .client .tables .Insert (request )
791
+ # Call get_table so that we wait until the table is visible.
792
+ _ = cls .bigquery_client .get_table (
793
+ cls .project , cls .dataset_id , table_name )
785
794
cls .bigquery_client .insert_rows (
786
795
cls .project , cls .dataset_id , table_name , data )
787
- mod_time .sleep (10 )
788
796
return table_schema
789
797
790
798
@classmethod
0 commit comments