From 2daf120259c3593579d12268762568f2c02294e8 Mon Sep 17 00:00:00 2001 From: chalmer lowe Date: Mon, 10 Aug 2026 06:06:51 -0400 Subject: [PATCH] fix(pubsub): handle internal metadata changes in google-api-core --- .../unit/pubsub_v1/publisher/test_publisher_client.py | 11 ++++++++--- .../pubsub_v1/subscriber/test_subscriber_client.py | 9 +++++++-- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/packages/google-cloud-pubsub/tests/unit/pubsub_v1/publisher/test_publisher_client.py b/packages/google-cloud-pubsub/tests/unit/pubsub_v1/publisher/test_publisher_client.py index cd20d49d9443..1ba2c46941a0 100644 --- a/packages/google-cloud-pubsub/tests/unit/pubsub_v1/publisher/test_publisher_client.py +++ b/packages/google-cloud-pubsub/tests/unit/pubsub_v1/publisher/test_publisher_client.py @@ -27,8 +27,6 @@ from google.api_core import retry as retries from google.api_core.gapic_v1.client_info import METRICS_METADATA_KEY from google.api_core.timeout import ConstantTimeout -from opentelemetry import trace - from google.cloud.pubsub_v1 import publisher, types from google.cloud.pubsub_v1.open_telemetry.context_propagation import ( OpenTelemetryContextSetter, @@ -41,6 +39,7 @@ from google.pubsub_v1 import types as gapic_types from google.pubsub_v1.services.publisher import client as publisher_client from google.pubsub_v1.services.publisher.transports.grpc import PublisherGrpcTransport +from opentelemetry import trace C = TypeVar("C", bound=Callable[..., Any]) typed_flaky = cast(Callable[[C], C], flaky(max_runs=5, min_passes=1)) @@ -119,10 +118,16 @@ def test_init_default_client_info(creds): expected_client_info = f"gccl/{installed_version}" for wrapped_method in client.transport._wrapped_methods.values(): + # Handle internal changes in google-api-core _GapicCallable + metadata = getattr( + wrapped_method, + "_metadata", + getattr(wrapped_method, "_default_metadata", []), + ) user_agent = next( ( header_value - for header, header_value in wrapped_method._metadata + for header, header_value in metadata if header == METRICS_METADATA_KEY ), None, # pragma: NO COVER diff --git a/packages/google-cloud-pubsub/tests/unit/pubsub_v1/subscriber/test_subscriber_client.py b/packages/google-cloud-pubsub/tests/unit/pubsub_v1/subscriber/test_subscriber_client.py index 2b3045b8d547..7b1f6a5e0187 100644 --- a/packages/google-cloud-pubsub/tests/unit/pubsub_v1/subscriber/test_subscriber_client.py +++ b/packages/google-cloud-pubsub/tests/unit/pubsub_v1/subscriber/test_subscriber_client.py @@ -16,7 +16,6 @@ import grpc import pytest from google.api_core.gapic_v1.client_info import METRICS_METADATA_KEY - from google.cloud.pubsub_v1 import subscriber, types from google.cloud.pubsub_v1.open_telemetry.context_propagation import ( OpenTelemetryContextGetter, @@ -46,10 +45,16 @@ def test_init_default_client_info(creds): expected_client_info = f"gccl/{installed_version}" for wrapped_method in client.transport._wrapped_methods.values(): + # Handle internal changes in google-api-core _GapicCallable + metadata = getattr( + wrapped_method, + "_metadata", + getattr(wrapped_method, "_default_metadata", []), + ) user_agent = next( ( header_value - for header, header_value in wrapped_method._metadata + for header, header_value in metadata if header == METRICS_METADATA_KEY ), None, # pragma: NO COVER