2121from google .cloud .spanner_v1 import TypeCode
2222from google .api_core .retry import Retry
2323from google .api_core import gapic_v1
24+ from google .cloud .spanner_v1 ._helpers import (
25+ AtomicCounter ,
26+ _metadata_with_request_id ,
27+ )
28+ from google .cloud .spanner_v1 .request_id_header import REQ_RAND_PROCESS_ID
2429
2530from tests ._helpers import (
2631 HAS_OPENTELEMETRY_INSTALLED ,
@@ -197,6 +202,11 @@ def test_begin_ok(self):
197202 [
198203 ("google-cloud-resource-prefix" , database .name ),
199204 ("x-goog-spanner-route-to-leader" , "true" ),
205+ # TODO(@odeke-em): enable with PR #1367.
206+ # (
207+ # "x-goog-spanner-request-id",
208+ # f"1.{REQ_RAND_PROCESS_ID}.{_Client.NTH_CLIENT.value}.1.1.1",
209+ # ),
200210 ],
201211 )
202212
@@ -301,6 +311,11 @@ def test_rollback_ok(self):
301311 [
302312 ("google-cloud-resource-prefix" , database .name ),
303313 ("x-goog-spanner-route-to-leader" , "true" ),
314+ # TODO(@odeke-em): enable with PR #1367.
315+ # (
316+ # "x-goog-spanner-request-id",
317+ # f"1.{REQ_RAND_PROCESS_ID}.{_Client.NTH_CLIENT.value}.1.1.1",
318+ # ),
304319 ],
305320 )
306321
@@ -492,6 +507,11 @@ def _commit_helper(
492507 [
493508 ("google-cloud-resource-prefix" , database .name ),
494509 ("x-goog-spanner-route-to-leader" , "true" ),
510+ # TODO(@odeke-em): enable with PR #1367.
511+ # (
512+ # "x-goog-spanner-request-id",
513+ # f"1.{REQ_RAND_PROCESS_ID}.{_Client.NTH_CLIENT.value}.1.1.1",
514+ # ),
495515 ],
496516 )
497517 self .assertEqual (actual_request_options , expected_request_options )
@@ -666,6 +686,11 @@ def _execute_update_helper(
666686 metadata = [
667687 ("google-cloud-resource-prefix" , database .name ),
668688 ("x-goog-spanner-route-to-leader" , "true" ),
689+ # TODO(@odeke-em): enable with PR #1367.
690+ # (
691+ # "x-goog-spanner-request-id",
692+ # f"1.{REQ_RAND_PROCESS_ID}.{_Client.NTH_CLIENT.value}.1.1.1",
693+ # ),
669694 ],
670695 )
671696
@@ -859,6 +884,11 @@ def _batch_update_helper(
859884 metadata = [
860885 ("google-cloud-resource-prefix" , database .name ),
861886 ("x-goog-spanner-route-to-leader" , "true" ),
887+ # TODO(@odeke-em): enable with PR #1367.
888+ # (
889+ # "x-goog-spanner-request-id",
890+ # f"1.{REQ_RAND_PROCESS_ID}.{_Client.NTH_CLIENT.value}.1.1.1",
891+ # ),
862892 ],
863893 retry = retry ,
864894 timeout = timeout ,
@@ -974,6 +1004,11 @@ def test_context_mgr_success(self):
9741004 [
9751005 ("google-cloud-resource-prefix" , database .name ),
9761006 ("x-goog-spanner-route-to-leader" , "true" ),
1007+ # TODO(@odeke-em): enable with PR #1367.
1008+ # (
1009+ # "x-goog-spanner-request-id",
1010+ # f"1.{REQ_RAND_PROCESS_ID}.{_Client.NTH_CLIENT.value}.1.2.1",
1011+ # ),
9771012 ],
9781013 )
9791014
@@ -1004,11 +1039,19 @@ def test_context_mgr_failure(self):
10041039
10051040
10061041class _Client (object ):
1042+ NTH_CLIENT = AtomicCounter ()
1043+
10071044 def __init__ (self ):
10081045 from google .cloud .spanner_v1 import ExecuteSqlRequest
10091046
10101047 self ._query_options = ExecuteSqlRequest .QueryOptions (optimizer_version = "1" )
10111048 self .directed_read_options = None
1049+ self ._nth_client_id = _Client .NTH_CLIENT .increment ()
1050+ self ._nth_request = AtomicCounter ()
1051+
1052+ @property
1053+ def _next_nth_request (self ):
1054+ return self ._nth_request .increment ()
10121055
10131056
10141057class _Instance (object ):
@@ -1024,6 +1067,27 @@ def __init__(self):
10241067 self ._directed_read_options = None
10251068 self .default_transaction_options = DefaultTransactionOptions ()
10261069
1070+ @property
1071+ def _next_nth_request (self ):
1072+ return self ._instance ._client ._next_nth_request
1073+
1074+ @property
1075+ def _nth_client_id (self ):
1076+ return self ._instance ._client ._nth_client_id
1077+
1078+ def metadata_with_request_id (self , nth_request , nth_attempt , prior_metadata = []):
1079+ return _metadata_with_request_id (
1080+ self ._nth_client_id ,
1081+ self ._channel_id ,
1082+ nth_request ,
1083+ nth_attempt ,
1084+ prior_metadata ,
1085+ )
1086+
1087+ @property
1088+ def _channel_id (self ):
1089+ return 1
1090+
10271091
10281092class _Session (object ):
10291093 _transaction = None
0 commit comments