Exemple #1
0
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
Exemple #2
0
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