def main(client, routine_id): # [START bigquery_create_routine] from google.cloud import bigquery from google.cloud import bigquery_v2 # TODO(developer): Construct a BigQuery client object. # client = bigquery.Client() # TODO(developer): Choose a fully-qualified ID for the routine. # routine_id = "my-project.my_dataset.my_routine" routine = bigquery.Routine( routine_id, type_="SCALAR_FUNCTION", language="SQL", body="x * 3", arguments=[ bigquery.RoutineArgument( name="x", data_type=bigquery_v2.types.StandardSqlDataType( type_kind=bigquery_v2.enums.StandardSqlDataType.TypeKind.INT64 ), ) ], ) routine = client.create_routine(routine) print("Created routine {}".format(routine.reference)) # [END bigquery_create_routine] return routine
def routine_id(client, dataset_id): now = datetime.datetime.now() routine_id = "python_routine_sample_{}_{}".format( now.strftime("%Y%m%d%H%M%S"), uuid.uuid4().hex[:8] ) routine = bigquery.Routine("{}.{}".format(dataset_id, routine_id)) routine.type_ = "SCALAR_FUNCTION" routine.language = "SQL" routine.body = "x * 3" routine.arguments = [ bigquery.RoutineArgument( name="x", data_type=bigquery_v2.types.StandardSqlDataType( type_kind=bigquery_v2.enums.StandardSqlDataType.TypeKind.INT64 ), ) ] routine = client.create_routine(routine) yield "{}.{}.{}".format(routine.project, routine.dataset_id, routine.routine_id) client.delete_routine(routine, not_found_ok=True)
from unittest.mock import Mock, patch import google.cloud.exceptions import pytest import os from flask.testing import FlaskClient from google.cloud import bigquery from main import app test_routines = [ bigquery.Routine("my-project.my-dataset.AGG_r1"), bigquery.Routine("my-project.my-dataset.r2"), bigquery.Routine("my-project.my-dataset.AGG_r3") ] os.environ['PROJECT_ID'] = 'my-project' @pytest.fixture def client(): """Creates a Flask test client for each test.""" app.config['TESTING'] = True with app.test_client() as app_client: yield app_client def testRunAggregationQueries(client: FlaskClient): with patch('google.cloud.bigquery.Client') as mock_bq_client: # Set up mocks