Skip to content

Commit d6f78cf

Browse files
committed
chore: update tests for mux session usage
1 parent 6b78e35 commit d6f78cf

15 files changed

+81
-78
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ docs/_build
4848
docs.metadata
4949

5050
# Virtual environment
51+
.venv/
5152
env/
5253
coverage.xml
5354
sponge_log.xml

google/cloud/sqlalchemy_spanner/sqlalchemy_spanner.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414
import base64
15+
import logging
1516

1617
import re
1718

@@ -927,6 +928,18 @@ def _get_table_filter_query(
927928

928929
return table_filter_query
929930

931+
def connect(self, *cargs, **cparams):
932+
conn = super().connect(*cargs, **cparams)
933+
database = getattr(conn, "_database")
934+
if database:
935+
logger = cparams.get("logger")
936+
if logger is None:
937+
logger = logging.getLogger()
938+
database._logger = logger
939+
else:
940+
database._logger = logger
941+
return conn
942+
930943
def create_connect_args(self, url):
931944
"""Parse connection args from the given URL.
932945

test/mockserver_tests/mock_server_test_base.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
14+
import logging
1415

1516
from google.cloud.spanner_dbapi.parsed_statement import AutocommitDmlMode
1617
from sqlalchemy import Engine, create_engine
@@ -22,7 +23,6 @@
2223
from google.cloud.spanner_v1 import (
2324
Client,
2425
ResultSet,
25-
PingingPool,
2626
TypeCode,
2727
)
2828
from google.cloud.spanner_v1.database import Database
@@ -151,6 +151,7 @@ def setup_method(self):
151151
self._client = None
152152
self._instance = None
153153
self._database = None
154+
_ = self.database
154155

155156
def teardown_method(self):
156157
MockServerTestBase.spanner_service.clear_requests()
@@ -159,7 +160,7 @@ def teardown_method(self):
159160
def create_engine(self) -> Engine:
160161
return create_engine(
161162
"spanner:///projects/p/instances/i/databases/d",
162-
connect_args={"client": self.client, "pool": PingingPool(size=10)},
163+
connect_args={"client": self.client},
163164
)
164165

165166
@property
@@ -177,13 +178,13 @@ def client(self) -> Client:
177178
@property
178179
def instance(self) -> Instance:
179180
if self._instance is None:
180-
self._instance = self.client.instance("test-instance")
181+
self._instance = self.client.instance("i")
181182
return self._instance
182183

183184
@property
184185
def database(self) -> Database:
186+
logger = logging.getLogger("level warning")
187+
logger.setLevel(logging.WARN)
185188
if self._database is None:
186-
self._database = self.instance.database(
187-
"test-database", pool=PingingPool(size=10)
188-
)
189+
self._database = self.instance.database("d", logger=logger)
189190
return self._database

test/mockserver_tests/test_auto_increment.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,8 @@
1616
from sqlalchemy.orm import Session
1717
from sqlalchemy.testing import eq_, is_instance_of
1818
from google.cloud.spanner_v1 import (
19-
FixedSizePool,
2019
ResultSet,
21-
BatchCreateSessionsRequest,
20+
CreateSessionRequest,
2221
ExecuteSqlRequest,
2322
CommitRequest,
2423
BeginTransactionRequest,
@@ -47,7 +46,7 @@ def test_create_table(self):
4746
)
4847
engine = create_engine(
4948
"spanner:///projects/p/instances/i/databases/d",
50-
connect_args={"client": self.client, "pool": FixedSizePool(size=10)},
49+
connect_args={"client": self.client},
5150
)
5251
Base.metadata.create_all(engine)
5352
requests = self.database_admin_service.requests
@@ -76,7 +75,7 @@ def test_create_auto_increment_table(self):
7675
)
7776
engine = create_engine(
7877
"spanner:///projects/p/instances/i/databases/d",
79-
connect_args={"client": self.client, "pool": FixedSizePool(size=10)},
78+
connect_args={"client": self.client},
8079
)
8180
engine.dialect.use_auto_increment = True
8281
Base.metadata.create_all(engine)
@@ -105,7 +104,7 @@ def test_create_table_with_specific_sequence_kind(self):
105104
)
106105
engine = create_engine(
107106
"spanner:///projects/p/instances/i/databases/d",
108-
connect_args={"client": self.client, "pool": FixedSizePool(size=10)},
107+
connect_args={"client": self.client},
109108
)
110109
engine.dialect.default_sequence_kind = "non_existing_kind"
111110
Base.metadata.create_all(engine)
@@ -128,7 +127,7 @@ def test_insert_row(self):
128127
self.add_insert_result("INSERT INTO singers (name) VALUES (@a0) THEN RETURN id")
129128
engine = create_engine(
130129
"spanner:///projects/p/instances/i/databases/d",
131-
connect_args={"client": self.client, "pool": FixedSizePool(size=10)},
130+
connect_args={"client": self.client},
132131
)
133132

134133
with Session(engine) as session:
@@ -141,7 +140,7 @@ def test_insert_row(self):
141140
# Verify the requests that we got.
142141
requests = self.spanner_service.requests
143142
eq_(4, len(requests))
144-
is_instance_of(requests[0], BatchCreateSessionsRequest)
143+
is_instance_of(requests[0], CreateSessionRequest)
145144
is_instance_of(requests[1], BeginTransactionRequest)
146145
is_instance_of(requests[2], ExecuteSqlRequest)
147146
is_instance_of(requests[3], CommitRequest)
@@ -154,7 +153,7 @@ def test_insert_row_with_pk_value(self):
154153
add_update_count("INSERT INTO singers (id, name) VALUES (@a0, @a1)", 1)
155154
engine = create_engine(
156155
"spanner:///projects/p/instances/i/databases/d",
157-
connect_args={"client": self.client, "pool": FixedSizePool(size=10)},
156+
connect_args={"client": self.client},
158157
)
159158

160159
with Session(engine) as session:

test/mockserver_tests/test_basics.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
# limitations under the License.
1414

1515
import datetime
16+
1617
from google.cloud.spanner_admin_database_v1 import UpdateDatabaseDdlRequest
1718
from google.cloud.spanner_dbapi.parsed_statement import AutocommitDmlMode
1819
from sqlalchemy import (
@@ -32,8 +33,7 @@
3233
from sqlalchemy.orm import Session, DeclarativeBase, Mapped, mapped_column
3334
from sqlalchemy.testing import eq_, is_instance_of
3435
from google.cloud.spanner_v1 import (
35-
FixedSizePool,
36-
BatchCreateSessionsRequest,
36+
CreateSessionRequest,
3737
ExecuteSqlRequest,
3838
ResultSet,
3939
PingingPool,
@@ -58,7 +58,7 @@ def verify_select1(self, results):
5858
eq_(1, len(result_list))
5959
requests = self.spanner_service.requests
6060
eq_(2, len(requests))
61-
is_instance_of(requests[0], BatchCreateSessionsRequest)
61+
is_instance_of(requests[0], CreateSessionRequest)
6262
is_instance_of(requests[1], ExecuteSqlRequest)
6363

6464
def test_select1(self):
@@ -71,7 +71,7 @@ def test_sqlalchemy_select1(self):
7171
add_select1_result()
7272
engine = create_engine(
7373
"spanner:///projects/p/instances/i/databases/d",
74-
connect_args={"client": self.client, "pool": PingingPool(size=10)},
74+
connect_args={"client": self.client},
7575
)
7676
with engine.connect().execution_options(
7777
isolation_level="AUTOCOMMIT"
@@ -113,7 +113,7 @@ def test_create_table(self):
113113
)
114114
engine = create_engine(
115115
"spanner:///projects/p/instances/i/databases/d",
116-
connect_args={"client": self.client, "pool": FixedSizePool(size=10)},
116+
connect_args={"client": self.client},
117117
)
118118
metadata = MetaData()
119119
Table(
@@ -150,7 +150,7 @@ def test_create_table_in_schema(self):
150150
)
151151
engine = create_engine(
152152
"spanner:///projects/p/instances/i/databases/d",
153-
connect_args={"client": self.client, "pool": FixedSizePool(size=10)},
153+
connect_args={"client": self.client},
154154
)
155155
metadata = MetaData()
156156
Table(
@@ -192,7 +192,7 @@ def test_create_multiple_tables(self):
192192
)
193193
engine = create_engine(
194194
"spanner:///projects/p/instances/i/databases/d",
195-
connect_args={"client": self.client, "pool": FixedSizePool(size=10)},
195+
connect_args={"client": self.client},
196196
)
197197
metadata = MetaData()
198198
for i in range(2):
@@ -260,7 +260,7 @@ class Singer(Base):
260260

261261
engine = create_engine(
262262
"spanner:///projects/p/instances/i/databases/d",
263-
connect_args={"client": self.client, "pool": FixedSizePool(size=10)},
263+
connect_args={"client": self.client},
264264
)
265265

266266
with Session(engine) as session:
@@ -277,18 +277,18 @@ def test_database_role(self):
277277
"spanner:///projects/p/instances/i/databases/d",
278278
connect_args={
279279
"client": self.client,
280-
"pool": FixedSizePool(size=10),
280+
# "pool": FixedSizePool(size=10),
281281
"database_role": "my_role",
282282
},
283283
)
284284
with Session(engine.execution_options(isolation_level="autocommit")) as session:
285285
session.execute(select(1))
286286
requests = self.spanner_service.requests
287287
eq_(2, len(requests))
288-
is_instance_of(requests[0], BatchCreateSessionsRequest)
288+
is_instance_of(requests[0], CreateSessionRequest)
289289
is_instance_of(requests[1], ExecuteSqlRequest)
290-
request: BatchCreateSessionsRequest = requests[0]
291-
eq_("my_role", request.session_template.creator_role)
290+
request: CreateSessionRequest = requests[0]
291+
eq_("my_role", request.session.creator_role)
292292

293293
def test_select_table_in_named_schema(self):
294294
class Base(DeclarativeBase):
@@ -311,7 +311,7 @@ class Singer(Base):
311311
add_singer_query_result(query)
312312
engine = create_engine(
313313
"spanner:///projects/p/instances/i/databases/d",
314-
connect_args={"client": self.client, "pool": FixedSizePool(size=10)},
314+
connect_args={"client": self.client},
315315
)
316316

317317
insert = "INSERT INTO my_schema.singers (name) VALUES (@a0) THEN RETURN id"

test/mockserver_tests/test_bit_reversed_sequence.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,8 @@
1616
from sqlalchemy.orm import Session
1717
from sqlalchemy.testing import eq_, is_instance_of
1818
from google.cloud.spanner_v1 import (
19-
FixedSizePool,
2019
ResultSet,
21-
BatchCreateSessionsRequest,
20+
CreateSessionRequest,
2221
ExecuteSqlRequest,
2322
CommitRequest,
2423
BeginTransactionRequest,
@@ -54,7 +53,7 @@ def test_create_table(self):
5453
)
5554
engine = create_engine(
5655
"spanner:///projects/p/instances/i/databases/d",
57-
connect_args={"client": self.client, "pool": FixedSizePool(size=10)},
56+
connect_args={"client": self.client},
5857
)
5958
Base.metadata.create_all(engine)
6059
requests = self.database_admin_service.requests
@@ -115,7 +114,7 @@ def test_insert_row(self):
115114
)
116115
engine = create_engine(
117116
"spanner:///projects/p/instances/i/databases/d",
118-
connect_args={"client": self.client, "pool": FixedSizePool(size=10)},
117+
connect_args={"client": self.client},
119118
)
120119

121120
with Session(engine) as session:
@@ -128,7 +127,7 @@ def test_insert_row(self):
128127
# Verify the requests that we got.
129128
requests = self.spanner_service.requests
130129
eq_(4, len(requests))
131-
is_instance_of(requests[0], BatchCreateSessionsRequest)
130+
is_instance_of(requests[0], CreateSessionRequest)
132131
is_instance_of(requests[1], BeginTransactionRequest)
133132
is_instance_of(requests[2], ExecuteSqlRequest)
134133
is_instance_of(requests[3], CommitRequest)

test/mockserver_tests/test_commit_timestamp.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,7 @@
1414

1515
from sqlalchemy import create_engine
1616
from sqlalchemy.testing import eq_, is_instance_of
17-
from google.cloud.spanner_v1 import (
18-
FixedSizePool,
19-
ResultSet,
20-
)
17+
from google.cloud.spanner_v1 import ResultSet
2118
from test.mockserver_tests.mock_server_test_base import (
2219
MockServerTestBase,
2320
add_result,
@@ -47,7 +44,7 @@ def test_create_table(self):
4744
)
4845
engine = create_engine(
4946
"spanner:///projects/p/instances/i/databases/d",
50-
connect_args={"client": self.client, "pool": FixedSizePool(size=10)},
47+
connect_args={"client": self.client},
5148
)
5249
Base.metadata.create_all(engine)
5350
requests = self.database_admin_service.requests

test/mockserver_tests/test_float32.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
is_false,
2020
)
2121
from google.cloud.spanner_v1 import (
22-
BatchCreateSessionsRequest,
22+
CreateSessionRequest,
2323
ExecuteSqlRequest,
2424
ResultSet,
2525
ResultSetStats,
@@ -59,7 +59,7 @@ def test_insert_data(self):
5959

6060
requests = self.spanner_service.requests
6161
eq_(4, len(requests))
62-
is_instance_of(requests[0], BatchCreateSessionsRequest)
62+
is_instance_of(requests[0], CreateSessionRequest)
6363
is_instance_of(requests[1], BeginTransactionRequest)
6464
is_instance_of(requests[2], ExecuteSqlRequest)
6565
is_instance_of(requests[3], CommitRequest)

0 commit comments

Comments
 (0)