Skip to content

Commit 7b9457c

Browse files
committed
add tests
1 parent 7aff5b8 commit 7b9457c

File tree

1 file changed

+128
-110
lines changed

1 file changed

+128
-110
lines changed

tests/system/test_query.py

+128-110
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,11 @@
1919
import pytest
2020

2121
from google.cloud import bigquery
22+
from google.cloud.bigquery.query import ArrayQueryParameter
2223
from google.cloud.bigquery.query import ScalarQueryParameter
23-
24-
# from google.cloud.bigquery.query import ArrayQueryParameter
25-
# from google.cloud.bigquery.query import ScalarQueryParameterType
26-
# from google.cloud.bigquery.query import StructQueryParameter
27-
# from google.cloud.bigquery.query import StructQueryParameterType
24+
from google.cloud.bigquery.query import ScalarQueryParameterType
25+
from google.cloud.bigquery.query import StructQueryParameter
26+
from google.cloud.bigquery.query import StructQueryParameterType
2827

2928

3029
@pytest.fixture(params=["INSERT", "QUERY"])
@@ -279,116 +278,135 @@ def test_query_statistics(bigquery_client, query_api_method):
279278
)
280279
],
281280
),
282-
# (
283-
# "SELECT @array_param",
284-
# [1, 2],
285-
# [array_param],
286-
# ),
287-
# (
288-
# "SELECT (@hitchhiker.question, @hitchhiker.answer)",
289-
# ({"_field_1": question, "_field_2": answer}),
290-
# [struct_param],
291-
# ),
292-
# (
293-
# "SELECT "
294-
# "((@rectangle.bottom_right.x - @rectangle.top_left.x) "
295-
# "* (@rectangle.top_left.y - @rectangle.bottom_right.y))",
296-
# 100,
297-
# [rectangle_param],
298-
# ),
299-
# (
300-
# "SELECT ?",
301-
# [
302-
# {"name": phred_name, "age": phred_age},
303-
# {"name": bharney_name, "age": bharney_age},
304-
# ],
305-
# [characters_param],
306-
# ),
307-
# (
308-
# "SELECT @empty_array_param",
309-
# [],
310-
# [empty_struct_array_param],
311-
# ),
312-
# (
313-
# "SELECT @roles",
314-
# (
315-
# "hero": {"name": phred_name, "age": phred_age},
316-
# "sidekick": {"name": bharney_name, "age": bharney_age},
317-
# ),
318-
# [roles_param],
319-
# ),
320-
# (
321-
# "SELECT ?",
322-
# {"friends": [phred_name, bharney_name]},
323-
# [with_friends_param],
324-
# ),
325-
# (
326-
# "SELECT @bignum_param",
327-
# bignum,
328-
# [bignum_param],
329-
# ),
281+
(
282+
"SELECT @array_param",
283+
[1, 2],
284+
[
285+
ArrayQueryParameter(
286+
name="array_param", array_type="INT64", values=[1, 2]
287+
)
288+
],
289+
),
290+
(
291+
"SELECT (@hitchhiker.question, @hitchhiker.answer)",
292+
({"_field_1": "What is the answer?", "_field_2": 42}),
293+
[
294+
StructQueryParameter(
295+
"hitchhiker",
296+
ScalarQueryParameter(
297+
name="question", type_="STRING", value="What is the answer?",
298+
),
299+
ScalarQueryParameter(name="answer", type_="INT64", value=42,),
300+
),
301+
],
302+
),
303+
(
304+
"SELECT "
305+
"((@rectangle.bottom_right.x - @rectangle.top_left.x) "
306+
"* (@rectangle.top_left.y - @rectangle.bottom_right.y))",
307+
100,
308+
[
309+
StructQueryParameter(
310+
"rectangle",
311+
StructQueryParameter(
312+
"top_left",
313+
ScalarQueryParameter("x", "INT64", 12),
314+
ScalarQueryParameter("y", "INT64", 102),
315+
),
316+
StructQueryParameter(
317+
"bottom_right",
318+
ScalarQueryParameter("x", "INT64", 22),
319+
ScalarQueryParameter("y", "INT64", 92),
320+
),
321+
)
322+
],
323+
),
324+
(
325+
"SELECT ?",
326+
[
327+
{"name": "Phred Phlyntstone", "age": 32},
328+
{"name": "Bharney Rhubbyl", "age": 31},
329+
],
330+
[
331+
ArrayQueryParameter(
332+
name=None,
333+
array_type="RECORD",
334+
values=[
335+
StructQueryParameter(
336+
None,
337+
ScalarQueryParameter(
338+
name="name", type_="STRING", value="Phred Phlyntstone"
339+
),
340+
ScalarQueryParameter(name="age", type_="INT64", value=32),
341+
),
342+
StructQueryParameter(
343+
None,
344+
ScalarQueryParameter(
345+
name="name", type_="STRING", value="Bharney Rhubbyl"
346+
),
347+
ScalarQueryParameter(name="age", type_="INT64", value=31),
348+
),
349+
],
350+
)
351+
],
352+
),
353+
(
354+
"SELECT @empty_array_param",
355+
[],
356+
[
357+
ArrayQueryParameter(
358+
name="empty_array_param",
359+
values=[],
360+
array_type=StructQueryParameterType(
361+
ScalarQueryParameterType(name="foo", type_="INT64"),
362+
ScalarQueryParameterType(name="bar", type_="STRING"),
363+
),
364+
)
365+
],
366+
),
367+
(
368+
"SELECT @roles",
369+
{
370+
"hero": {"name": "Phred Phlyntstone", "age": 32},
371+
"sidekick": {"name": "Bharney Rhubbyl", "age": 31},
372+
},
373+
[
374+
StructQueryParameter(
375+
"roles",
376+
StructQueryParameter(
377+
"hero",
378+
ScalarQueryParameter(
379+
name="name", type_="STRING", value="Phred Phlyntstone"
380+
),
381+
ScalarQueryParameter(name="age", type_="INT64", value=32),
382+
),
383+
StructQueryParameter(
384+
"sidekick",
385+
ScalarQueryParameter(
386+
name="name", type_="STRING", value="Bharney Rhubbyl"
387+
),
388+
ScalarQueryParameter(name="age", type_="INT64", value=31),
389+
),
390+
),
391+
],
392+
),
393+
(
394+
"SELECT ?",
395+
{"friends": ["Jack", "Jill"]},
396+
[
397+
StructQueryParameter(
398+
None,
399+
ArrayQueryParameter(
400+
name="friends", array_type="STRING", values=["Jack", "Jill"]
401+
),
402+
)
403+
],
404+
),
330405
),
331406
)
332407
def test_query_parameters(
333408
bigquery_client, query_api_method, sql, expected, query_parameters
334409
):
335-
# array_param = ArrayQueryParameter(
336-
# name="array_param", array_type="INT64", values=[1, 2]
337-
# )
338-
# struct_param = StructQueryParameter("hitchhiker", question_param, answer_param)
339-
# phred_name = "Phred Phlyntstone"
340-
# phred_name_param = ScalarQueryParameter(
341-
# name="name", type_="STRING", value=phred_name
342-
# )
343-
# phred_age = 32
344-
# phred_age_param = ScalarQueryParameter(
345-
# name="age", type_="INT64", value=phred_age
346-
# )
347-
# phred_param = StructQueryParameter(None, phred_name_param, phred_age_param)
348-
# bharney_name = "Bharney Rhubbyl"
349-
# bharney_name_param = ScalarQueryParameter(
350-
# name="name", type_="STRING", value=bharney_name
351-
# )
352-
# bharney_age = 31
353-
# bharney_age_param = ScalarQueryParameter(
354-
# name="age", type_="INT64", value=bharney_age
355-
# )
356-
# bharney_param = StructQueryParameter(
357-
# None, bharney_name_param, bharney_age_param
358-
# )
359-
# characters_param = ArrayQueryParameter(
360-
# name=None, array_type="RECORD", values=[phred_param, bharney_param]
361-
# )
362-
# empty_struct_array_param = ArrayQueryParameter(
363-
# name="empty_array_param",
364-
# values=[],
365-
# array_type=StructQueryParameterType(
366-
# ScalarQueryParameterType(name="foo", type_="INT64"),
367-
# ScalarQueryParameterType(name="bar", type_="STRING"),
368-
# ),
369-
# )
370-
# hero_param = StructQueryParameter("hero", phred_name_param, phred_age_param)
371-
# sidekick_param = StructQueryParameter(
372-
# "sidekick", bharney_name_param, bharney_age_param
373-
# )
374-
# roles_param = StructQueryParameter("roles", hero_param, sidekick_param)
375-
# friends_param = ArrayQueryParameter(
376-
# name="friends", array_type="STRING", values=[phred_name, bharney_name]
377-
# )
378-
# with_friends_param = StructQueryParameter(None, friends_param)
379-
# top_left_param = StructQueryParameter(
380-
# "top_left",
381-
# ScalarQueryParameter("x", "INT64", 12),
382-
# ScalarQueryParameter("y", "INT64", 102),
383-
# )
384-
# bottom_right_param = StructQueryParameter(
385-
# "bottom_right",
386-
# ScalarQueryParameter("x", "INT64", 22),
387-
# ScalarQueryParameter("y", "INT64", 92),
388-
# )
389-
# rectangle_param = StructQueryParameter(
390-
# "rectangle", top_left_param, bottom_right_param
391-
# )
392410

393411
jconfig = bigquery.QueryJobConfig()
394412
jconfig.query_parameters = query_parameters

0 commit comments

Comments
 (0)