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

Commit f7e73bb

Browse files
committed
fix: Use granular assertions in test_transaction_for_concurrent_statement_should_begin_one_transaction_with_read
1 parent 6acc527 commit f7e73bb

File tree

1 file changed

+28
-32
lines changed

1 file changed

+28
-32
lines changed

tests/unit/test_spanner.py

Lines changed: 28 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1134,41 +1134,37 @@ def test_transaction_for_concurrent_statement_should_begin_one_transaction_with_
11341134
],
11351135
)
11361136

1137-
self.assertEqual(
1138-
api.streaming_read.call_args_list,
1139-
[
1140-
mock.call(
1141-
request=self._read_helper_expected_request(),
1142-
metadata=[
1143-
("google-cloud-resource-prefix", database.name),
1144-
("x-goog-spanner-route-to-leader", "true"),
1145-
(
1146-
"x-goog-spanner-request-id",
1147-
f"1.{REQ_RAND_PROCESS_ID}.{database._nth_client_id}.{database._channel_id}.1.1",
1148-
),
1149-
],
1150-
retry=RETRY,
1151-
timeout=TIMEOUT,
1152-
),
1153-
mock.call(
1154-
request=self._read_helper_expected_request(begin=False),
1155-
metadata=[
1156-
("google-cloud-resource-prefix", database.name),
1157-
("x-goog-spanner-route-to-leader", "true"),
1158-
(
1159-
"x-goog-spanner-request-id",
1160-
f"1.{REQ_RAND_PROCESS_ID}.{database._nth_client_id}.{database._channel_id}.2.1",
1161-
),
1162-
],
1163-
retry=RETRY,
1164-
timeout=TIMEOUT,
1165-
),
1166-
],
1167-
)
1168-
11691137
self.assertEqual(api.execute_sql.call_count, 1)
11701138
self.assertEqual(api.streaming_read.call_count, 2)
11711139

1140+
call_args_list = api.streaming_read.call_args_list
1141+
1142+
expected_requests = [
1143+
self._read_helper_expected_request(),
1144+
self._read_helper_expected_request(begin=False),
1145+
]
1146+
actual_requests = [call.kwargs["request"] for call in call_args_list]
1147+
self.assertCountEqual(actual_requests, expected_requests)
1148+
1149+
request_ids = []
1150+
for call in call_args_list:
1151+
metadata = call.kwargs["metadata"]
1152+
self.assertEqual(len(metadata), 3)
1153+
self.assertEqual(
1154+
metadata[0], ("google-cloud-resource-prefix", database.name)
1155+
)
1156+
self.assertEqual(metadata[1], ("x-goog-spanner-route-to-leader", "true"))
1157+
self.assertEqual(metadata[2][0], "x-goog-spanner-request-id")
1158+
request_ids.append(metadata[2][1])
1159+
self.assertEqual(call.kwargs["retry"], RETRY)
1160+
self.assertEqual(call.kwargs["timeout"], TIMEOUT)
1161+
1162+
expected_id_suffixes = ["1.1", "2.1"]
1163+
actual_id_suffixes = sorted(
1164+
[".".join(rid.split(".")[-2:]) for rid in request_ids]
1165+
)
1166+
self.assertEqual(actual_id_suffixes, expected_id_suffixes)
1167+
11721168
def test_transaction_for_concurrent_statement_should_begin_one_transaction_with_query(
11731169
self,
11741170
):

0 commit comments

Comments
 (0)