From 9140995dcaf6586b66fa587fdcf87ff7bfa1de2f Mon Sep 17 00:00:00 2001 From: Heba Alazzeh Date: Sat, 18 Jul 2026 06:31:28 +0000 Subject: [PATCH] fix(api-core): address PR review comments for requests.py and test_requests.py --- .../google/api_core/gapic_v1/requests.py | 2 +- .../tests/unit/gapic/test_requests.py | 12 +++++------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/packages/google-api-core/google/api_core/gapic_v1/requests.py b/packages/google-api-core/google/api_core/gapic_v1/requests.py index 8ce97c9cffa7..76f5e916716d 100644 --- a/packages/google-api-core/google/api_core/gapic_v1/requests.py +++ b/packages/google-api-core/google/api_core/gapic_v1/requests.py @@ -65,7 +65,7 @@ def setup_request_id( setattr(request, field_name, str(uuid.uuid4())) except (AttributeError, ValueError): # Proto-plus messages or other objects - if not getattr(request, field_name, None): + if getattr(request, field_name, None) is None: setattr(request, field_name, str(uuid.uuid4())) else: if not getattr(request, field_name, None): diff --git a/packages/google-api-core/tests/unit/gapic/test_requests.py b/packages/google-api-core/tests/unit/gapic/test_requests.py index e046f31b828b..1f41c39f756b 100644 --- a/packages/google-api-core/tests/unit/gapic/test_requests.py +++ b/packages/google-api-core/tests/unit/gapic/test_requests.py @@ -27,9 +27,6 @@ def __init__(self, **kwargs): for k, v in kwargs.items(): setattr(self, k, v) - def __contains__(self, key): - return hasattr(self, key) - class MockProtoRequest: def __init__(self, **kwargs): @@ -44,9 +41,6 @@ class MockValueErrorRequest: def HasField(self, key): raise ValueError("Mismatched field") - def __contains__(self, key): - return hasattr(self, key) - # --- Parameterized Test --- @@ -59,6 +53,7 @@ def __contains__(self, key): # MockRequest cases (MockRequest(), True, "uuid"), (MockRequest(request_id="already_set"), True, "already_set"), + (MockRequest(request_id=""), True, ""), (MockRequest(request_id=""), False, "uuid"), (MockRequest(request_id="already_set"), False, "already_set"), # MockProtoRequest cases @@ -70,6 +65,7 @@ def __contains__(self, key): ({}, True, "uuid"), ({"request_id": None}, True, "uuid"), ({"request_id": "already_set"}, True, "already_set"), + ({"request_id": ""}, True, ""), ({"request_id": ""}, False, "uuid"), ({"request_id": None}, False, "uuid"), ({"request_id": "already_set"}, False, "already_set"), @@ -79,6 +75,7 @@ def __contains__(self, key): ids=[ "proto3_optional_not_in_request", "proto3_optional_already_in_request", + "proto3_optional_explicit_empty", "non_proto3_optional_empty", "non_proto3_optional_already_set", "proto3_optional_not_in_request_proto", @@ -87,6 +84,7 @@ def __contains__(self, key): "dict_proto3_optional_not_in_request", "dict_proto3_optional_value_none", "dict_proto3_optional_already_in_request", + "dict_proto3_optional_explicit_empty", "dict_non_proto3_optional_empty", "dict_non_proto3_optional_value_none", "dict_non_proto3_optional_already_set", @@ -110,6 +108,6 @@ def test_setup_request_id(request_obj, is_proto3_optional, expected): ) if expected == "uuid": - assert re.match(UUID_REGEX, value) + assert re.fullmatch(UUID_REGEX, value) else: assert value == expected