1414
1515import unittest
1616
17- from google .cloud .spanner_dbapi .parsed_statement import AutocommitDmlMode
18- from google .cloud .spanner_v1 .testing .mock_database_admin import DatabaseAdminServicer
19- from google .cloud .spanner_v1 .testing .mock_spanner import (
20- start_mock_server ,
21- SpannerServicer ,
22- )
23- import google .cloud .spanner_v1 .types .type as spanner_type
24- import google .cloud .spanner_v1 .types .result_set as result_set
17+ import grpc
2518from google .api_core .client_options import ClientOptions
2619from google .auth .credentials import AnonymousCredentials
27- from google .cloud .spanner_v1 import Client , TypeCode , FixedSizePool
28- from google .cloud .spanner_v1 .database import Database
29- from google .cloud .spanner_v1 .instance import Instance
30- import grpc
31- from google .rpc import code_pb2
32- from google .rpc import status_pb2
33- from google .rpc .error_details_pb2 import RetryInfo
20+ from google .cloud .spanner_v1 import Type
21+
22+ from google .cloud .spanner_v1 import StructType
23+ from google .cloud .spanner_v1 ._helpers import _make_value_pb
24+
25+ from google .cloud .spanner_v1 import PartialResultSet
3426from google .protobuf .duration_pb2 import Duration
27+ from google .rpc import code_pb2 , status_pb2
28+
29+ from google .rpc .error_details_pb2 import RetryInfo
3530from grpc_status ._common import code_to_grpc_status_code
3631from grpc_status .rpc_status import _Status
3732
33+ import google .cloud .spanner_v1 .types .result_set as result_set
34+ import google .cloud .spanner_v1 .types .type as spanner_type
35+ from google .cloud .spanner_dbapi .parsed_statement import AutocommitDmlMode
36+ from google .cloud .spanner_v1 import Client , FixedSizePool , ResultSetMetadata , TypeCode
37+ from google .cloud .spanner_v1 .database import Database
38+ from google .cloud .spanner_v1 .instance import Instance
39+ from google .cloud .spanner_v1 .testing .mock_database_admin import DatabaseAdminServicer
40+ from google .cloud .spanner_v1 .testing .mock_spanner import (
41+ SpannerServicer ,
42+ start_mock_server ,
43+ )
44+
3845
3946# Creates an aborted status with the smallest possible retry delay.
4047def aborted_status () -> _Status :
@@ -57,6 +64,27 @@ def aborted_status() -> _Status:
5764 return status
5865
5966
67+ def _make_partial_result_sets (
68+ fields : list [tuple [str , TypeCode ]], results : list [dict ]
69+ ) -> list [result_set .PartialResultSet ]:
70+ partial_result_sets = []
71+ for result in results :
72+ partial_result_set = PartialResultSet ()
73+ if len (partial_result_sets ) == 0 :
74+ # setting the metadata
75+ metadata = ResultSetMetadata (row_type = StructType (fields = []))
76+ for field in fields :
77+ metadata .row_type .fields .append (
78+ StructType .Field (name = field [0 ], type_ = Type (code = field [1 ]))
79+ )
80+ partial_result_set .metadata = metadata
81+ for value in result ["values" ]:
82+ partial_result_set .values .append (_make_value_pb (value ))
83+ partial_result_set .last = result .get ("last" ) or False
84+ partial_result_sets .append (partial_result_set )
85+ return partial_result_sets
86+
87+
6088# Creates an UNAVAILABLE status with the smallest possible retry delay.
6189def unavailable_status () -> _Status :
6290 error = status_pb2 .Status (
@@ -101,6 +129,14 @@ def add_select1_result():
101129 add_single_result ("select 1" , "c" , TypeCode .INT64 , [("1" ,)])
102130
103131
132+ def add_execute_streaming_sql_results (
133+ sql : str , partial_result_sets : list [result_set .PartialResultSet ]
134+ ):
135+ MockServerTestBase .spanner_service .mock_spanner .add_execute_streaming_sql_results (
136+ sql , partial_result_sets
137+ )
138+
139+
104140def add_single_result (
105141 sql : str , column_name : str , type_code : spanner_type .TypeCode , row
106142):
0 commit comments