def test_ctor_w_properties(target_class): from google.cloud.bigquery.routine import RoutineArgument from google.cloud.bigquery.routine import RoutineReference routine_id = "my-proj.my_dset.my_routine" arguments = [ RoutineArgument( name="x", data_type=bigquery_v2.types.StandardSqlDataType( type_kind=bigquery_v2.enums.StandardSqlDataType.TypeKind.INT64 ), ) ] body = "x * 3" language = "SQL" return_type = bigquery_v2.types.StandardSqlDataType( type_kind=bigquery_v2.enums.StandardSqlDataType.TypeKind.INT64) type_ = "SCALAR_FUNCTION" actual_routine = target_class( routine_id, arguments=arguments, body=body, language=language, return_type=return_type, type_=type_, ) ref = RoutineReference.from_string(routine_id) assert actual_routine.reference == ref assert actual_routine.arguments == arguments assert actual_routine.body == body assert actual_routine.language == language assert actual_routine.return_type == return_type assert actual_routine.type_ == type_
def test_ctor_w_string(target_class): from google.cloud.bigquery.routine import RoutineReference routine_id = "my-proj.my_dset.my_routine" ref = RoutineReference.from_string(routine_id) actual_routine = target_class(routine_id) assert actual_routine.reference == ref
def test_ctor(target_class): from google.cloud.bigquery.routine import RoutineReference ref = RoutineReference.from_string("my-proj.my_dset.my_routine") actual_routine = target_class(ref) assert actual_routine.reference == ref assert (actual_routine.path == "/projects/my-proj/datasets/my_dset/routines/my_routine")
def test_from_api_repr_w_unknown_fields(target_class): from google.cloud.bigquery.routine import RoutineReference resource = { "routineReference": { "projectId": "my-project", "datasetId": "my_dataset", "routineId": "my_routine", }, "thisFieldIsNotInTheProto": "just ignore me", } actual_routine = target_class.from_api_repr(resource) assert actual_routine.reference == RoutineReference.from_string( "my-project.my_dataset.my_routine") assert actual_routine._properties is resource
def test_ctor_w_properties(target_class): from google.cloud.bigquery.routine import RoutineArgument from google.cloud.bigquery.routine import RoutineReference routine_id = "my-proj.my_dset.my_routine" arguments = [ RoutineArgument( name="x", data_type=bigquery_v2.types.StandardSqlDataType( type_kind=bigquery_v2.types.StandardSqlDataType.TypeKind.INT64 ), ) ] body = "x * 3" language = "SQL" return_type = bigquery_v2.types.StandardSqlDataType( type_kind=bigquery_v2.types.StandardSqlDataType.TypeKind.INT64) type_ = "SCALAR_FUNCTION" description = "A routine description." determinism_level = bigquery.DeterminismLevel.NOT_DETERMINISTIC actual_routine = target_class( routine_id, arguments=arguments, body=body, language=language, return_type=return_type, type_=type_, description=description, determinism_level=determinism_level, ) ref = RoutineReference.from_string(routine_id) assert actual_routine.reference == ref assert actual_routine.arguments == arguments assert actual_routine.body == body assert actual_routine.language == language assert actual_routine.return_type == return_type assert actual_routine.type_ == type_ assert actual_routine.description == description assert (actual_routine.determinism_level == bigquery.DeterminismLevel.NOT_DETERMINISTIC)
def test_from_api_repr_w_minimal_resource(target_class): from google.cloud.bigquery.routine import RoutineReference resource = { "routineReference": { "projectId": "my-project", "datasetId": "my_dataset", "routineId": "my_routine", } } actual_routine = target_class.from_api_repr(resource) assert actual_routine.reference == RoutineReference.from_string( "my-project.my_dataset.my_routine") assert actual_routine.etag is None assert actual_routine.created is None assert actual_routine.modified is None assert actual_routine.arguments == [] assert actual_routine.body is None assert actual_routine.language is None assert actual_routine.return_type is None assert actual_routine.type_ is None
def test_from_api_repr(target_class): from google.cloud.bigquery.routine import RoutineArgument from google.cloud.bigquery.routine import RoutineReference creation_time = datetime.datetime(2010, 5, 19, 16, 0, 0, tzinfo=google.cloud._helpers.UTC) modified_time = datetime.datetime(2011, 10, 1, 16, 0, 0, tzinfo=google.cloud._helpers.UTC) resource = { "routineReference": { "projectId": "my-project", "datasetId": "my_dataset", "routineId": "my_routine", }, "etag": "abcdefg", "creationTime": str(google.cloud._helpers._millis(creation_time)), "lastModifiedTime": str(google.cloud._helpers._millis(modified_time)), "definitionBody": "42", "arguments": [{ "name": "x", "dataType": { "typeKind": "INT64" } }], "language": "SQL", "returnType": { "typeKind": "INT64" }, "routineType": "SCALAR_FUNCTION", "someNewField": "someValue", "description": "A routine description.", } actual_routine = target_class.from_api_repr(resource) assert actual_routine.project == "my-project" assert actual_routine.dataset_id == "my_dataset" assert actual_routine.routine_id == "my_routine" assert (actual_routine.path == "/projects/my-project/datasets/my_dataset/routines/my_routine") assert actual_routine.reference == RoutineReference.from_string( "my-project.my_dataset.my_routine") assert actual_routine.etag == "abcdefg" assert actual_routine.created == creation_time assert actual_routine.modified == modified_time assert actual_routine.arguments == [ RoutineArgument( name="x", data_type=bigquery_v2.types.StandardSqlDataType( type_kind=bigquery_v2.types.StandardSqlDataType.TypeKind.INT64 ), ) ] assert actual_routine.body == "42" assert actual_routine.language == "SQL" assert actual_routine.return_type == bigquery_v2.types.StandardSqlDataType( type_kind=bigquery_v2.types.StandardSqlDataType.TypeKind.INT64) assert actual_routine.type_ == "SCALAR_FUNCTION" assert actual_routine._properties["someNewField"] == "someValue" assert actual_routine.description == "A routine description."
def test_from_api_repr_tvf_function(target_class): from google.cloud.bigquery.routine import RoutineArgument from google.cloud.bigquery.routine import RoutineReference from google.cloud.bigquery.routine import RoutineType StandardSqlDataType = bigquery_v2.types.StandardSqlDataType StandardSqlField = bigquery_v2.types.StandardSqlField StandardSqlTableType = bigquery_v2.types.StandardSqlTableType creation_time = datetime.datetime(2010, 5, 19, 16, 0, 0, tzinfo=google.cloud._helpers.UTC) modified_time = datetime.datetime(2011, 10, 1, 16, 0, 0, tzinfo=google.cloud._helpers.UTC) resource = { "routineReference": { "projectId": "my-project", "datasetId": "my_dataset", "routineId": "my_routine", }, "etag": "abcdefg", "creationTime": str(google.cloud._helpers._millis(creation_time)), "lastModifiedTime": str(google.cloud._helpers._millis(modified_time)), "definitionBody": "SELECT x FROM UNNEST([1,2,3]) x WHERE x > a", "arguments": [{ "name": "a", "dataType": { "typeKind": "INT64" } }], "language": "SQL", "returnTableType": { "columns": [{ "name": "int_col", "type": { "typeKind": "INT64" } }] }, "routineType": "TABLE_VALUED_FUNCTION", "someNewField": "someValue", "description": "A routine description.", "determinismLevel": bigquery.DeterminismLevel.DETERMINISTIC, } actual_routine = target_class.from_api_repr(resource) assert actual_routine.project == "my-project" assert actual_routine.dataset_id == "my_dataset" assert actual_routine.routine_id == "my_routine" assert (actual_routine.path == "/projects/my-project/datasets/my_dataset/routines/my_routine") assert actual_routine.reference == RoutineReference.from_string( "my-project.my_dataset.my_routine") assert actual_routine.etag == "abcdefg" assert actual_routine.created == creation_time assert actual_routine.modified == modified_time assert actual_routine.arguments == [ RoutineArgument( name="a", data_type=StandardSqlDataType( type_kind=StandardSqlDataType.TypeKind.INT64), ) ] assert actual_routine.body == "SELECT x FROM UNNEST([1,2,3]) x WHERE x > a" assert actual_routine.language == "SQL" assert actual_routine.return_type is None assert actual_routine.return_table_type == StandardSqlTableType(columns=[ StandardSqlField( name="int_col", type=StandardSqlDataType( type_kind=StandardSqlDataType.TypeKind.INT64), ) ]) assert actual_routine.type_ == RoutineType.TABLE_VALUED_FUNCTION assert actual_routine._properties["someNewField"] == "someValue" assert actual_routine.description == "A routine description." assert actual_routine.determinism_level == "DETERMINISTIC"