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

Commit b9e81f0

Browse files
committed
Plumb in more tests
1 parent 964e908 commit b9e81f0

File tree

1 file changed

+73
-6
lines changed

1 file changed

+73
-6
lines changed

tests/unit/test_snapshot.py

Lines changed: 73 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@
2525
)
2626
from google.cloud.spanner_v1.param_types import INT64
2727
from google.api_core.retry import Retry
28+
from google.cloud.spanner_v1._helpers import (
29+
AtomicCounter,
30+
_metadata_with_request_id,
31+
)
32+
from google.cloud.spanner_v1.request_id_header import REQ_RAND_PROCESS_ID
2833

2934
TABLE_NAME = "citizens"
3035
COLUMNS = ["email", "first_name", "last_name", "age"]
@@ -278,7 +283,7 @@ def test_iteration_w_raw_raising_retryable_internal_error(self):
278283
fail_after=True,
279284
error=InternalServerError(
280285
"Received unexpected EOS on DATA frame from server"
281-
)
286+
),
282287
)
283288
after = _MockIterator(*LAST)
284289
request = mock.Mock(test="test", spec=["test", "resume_token"])
@@ -450,7 +455,7 @@ def test_iteration_w_raw_raising_retryable_internal_error_after_token(self):
450455
fail_after=True,
451456
error=InternalServerError(
452457
"Received unexpected EOS on DATA frame from server"
453-
)
458+
),
454459
)
455460
after = _MockIterator(*SECOND)
456461
request = mock.Mock(test="test", spec=["test", "resume_token"])
@@ -767,7 +772,13 @@ def _read_helper(
767772
)
768773
api.streaming_read.assert_called_once_with(
769774
request=expected_request,
770-
metadata=[("google-cloud-resource-prefix", database.name)],
775+
metadata=[
776+
("google-cloud-resource-prefix", database.name),
777+
(
778+
"x-goog-spanner-request-id",
779+
f"1.{REQ_RAND_PROCESS_ID}.{_Client.NTH_CLIENT.value}.1.1.1",
780+
),
781+
],
771782
retry=retry,
772783
timeout=timeout,
773784
)
@@ -1016,7 +1027,13 @@ def _execute_sql_helper(
10161027
)
10171028
api.execute_streaming_sql.assert_called_once_with(
10181029
request=expected_request,
1019-
metadata=[("google-cloud-resource-prefix", database.name)],
1030+
metadata=[
1031+
("google-cloud-resource-prefix", database.name),
1032+
(
1033+
"x-goog-spanner-request-id",
1034+
f"1.{REQ_RAND_PROCESS_ID}.{_Client.NTH_CLIENT.value}.1.1.1",
1035+
),
1036+
],
10201037
timeout=timeout,
10211038
retry=retry,
10221039
)
@@ -1189,6 +1206,10 @@ def _partition_read_helper(
11891206
metadata=[
11901207
("google-cloud-resource-prefix", database.name),
11911208
("x-goog-spanner-route-to-leader", "true"),
1209+
(
1210+
"x-goog-spanner-request-id",
1211+
f"1.{REQ_RAND_PROCESS_ID}.{_Client.NTH_CLIENT.value}.1.1.1",
1212+
),
11921213
],
11931214
retry=retry,
11941215
timeout=timeout,
@@ -1363,6 +1384,10 @@ def _partition_query_helper(
13631384
metadata=[
13641385
("google-cloud-resource-prefix", database.name),
13651386
("x-goog-spanner-route-to-leader", "true"),
1387+
(
1388+
"x-goog-spanner-request-id",
1389+
f"1.{REQ_RAND_PROCESS_ID}.{_Client.NTH_CLIENT.value}.1.1.1",
1390+
),
13661391
],
13671392
retry=retry,
13681393
timeout=timeout,
@@ -1751,7 +1776,13 @@ def test_begin_ok_exact_staleness(self):
17511776
api.begin_transaction.assert_called_once_with(
17521777
session=session.name,
17531778
options=expected_txn_options,
1754-
metadata=[("google-cloud-resource-prefix", database.name)],
1779+
metadata=[
1780+
("google-cloud-resource-prefix", database.name),
1781+
(
1782+
"x-goog-spanner-request-id",
1783+
f"1.{REQ_RAND_PROCESS_ID}.{_Client.NTH_CLIENT.value}.1.1.1",
1784+
),
1785+
],
17551786
)
17561787

17571788
self.assertSpanAttributes(
@@ -1787,7 +1818,13 @@ def test_begin_ok_exact_strong(self):
17871818
api.begin_transaction.assert_called_once_with(
17881819
session=session.name,
17891820
options=expected_txn_options,
1790-
metadata=[("google-cloud-resource-prefix", database.name)],
1821+
metadata=[
1822+
("google-cloud-resource-prefix", database.name),
1823+
(
1824+
"x-goog-spanner-request-id",
1825+
f"1.{REQ_RAND_PROCESS_ID}.{_Client.NTH_CLIENT.value}.1.1.1",
1826+
),
1827+
],
17911828
)
17921829

17931830
self.assertSpanAttributes(
@@ -1798,10 +1835,18 @@ def test_begin_ok_exact_strong(self):
17981835

17991836

18001837
class _Client(object):
1838+
NTH_CLIENT = AtomicCounter()
1839+
18011840
def __init__(self):
18021841
from google.cloud.spanner_v1 import ExecuteSqlRequest
18031842

18041843
self._query_options = ExecuteSqlRequest.QueryOptions(optimizer_version="1")
1844+
self._nth_client_id = _Client.NTH_CLIENT.increment()
1845+
self._nth_request = AtomicCounter()
1846+
1847+
@property
1848+
def _next_nth_request(self):
1849+
return self._nth_request.increment()
18051850

18061851

18071852
class _Instance(object):
@@ -1816,6 +1861,28 @@ def __init__(self, directed_read_options=None):
18161861
self._route_to_leader_enabled = True
18171862
self._directed_read_options = directed_read_options
18181863

1864+
@property
1865+
def _next_nth_request(self):
1866+
return self._instance._client._next_nth_request
1867+
1868+
@property
1869+
def _nth_client_id(self):
1870+
return self._instance._client._nth_client_id
1871+
1872+
def metadata_with_request_id(self, nth_request, nth_attempt, prior_metadata=[]):
1873+
client_id = self._nth_client_id
1874+
return _metadata_with_request_id(
1875+
self._nth_client_id,
1876+
self._channel_id,
1877+
nth_request,
1878+
nth_attempt,
1879+
prior_metadata,
1880+
)
1881+
1882+
@property
1883+
def _channel_id(self):
1884+
return 1
1885+
18191886

18201887
class _Session(object):
18211888
def __init__(self, database=None, name=TestSnapshot.SESSION_NAME):

0 commit comments

Comments
 (0)