Skip to content
This repository was archived by the owner on Mar 31, 2026. It is now read-only.

Commit f8d0345

Browse files
committed
expect precommit token only when session is multiplexed.
1 parent ccf299f commit f8d0345

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

google/cloud/spanner_v1/transaction.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,9 @@ def wrapped_method(*args, **kwargs):
289289
"mutations": mutations,
290290
**common_commit_request_args,
291291
}
292-
if self._session.is_multiplexed and self._precommit_token is not None:
292+
# Check if session is multiplexed (safely handle mock sessions)
293+
is_multiplexed = getattr(self._session, "is_multiplexed", False)
294+
if is_multiplexed and self._precommit_token is not None:
293295
commit_request_args["precommit_token"] = self._precommit_token
294296

295297
commit_method = functools.partial(

tests/unit/test_transaction.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -493,11 +493,15 @@ def _commit_helper(
493493
"request_options": expected_request_options,
494494
}
495495

496-
expected_commit_request = CommitRequest(
497-
mutations=transaction._mutations,
498-
precommit_token=transaction._precommit_token,
496+
# Only include precommit_token if the session is multiplexed and token exists
497+
commit_request_args = {
498+
"mutations": transaction._mutations,
499499
**common_expected_commit_response_args,
500-
)
500+
}
501+
if session.is_multiplexed and transaction._precommit_token is not None:
502+
commit_request_args["precommit_token"] = transaction._precommit_token
503+
504+
expected_commit_request = CommitRequest(**commit_request_args)
501505

502506
expected_commit_metadata = base_metadata.copy()
503507
expected_commit_metadata.append(

0 commit comments

Comments
 (0)