Skip to content

Commit b504222

Browse files
committed
fix(api-core): raise ValueError on missing cert source in get_client_cert_source
1 parent daf631e commit b504222

2 files changed

Lines changed: 15 additions & 6 deletions

File tree

packages/google-api-core/google/api_core/gapic_v1/client_cert.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,13 +67,16 @@ def get_client_cert_source(
6767
Returns:
6868
Callable[[], Tuple[bytes, bytes]] or None: The client cert source to be used by the client.
6969
"""
70-
client_cert_source = None
7170
if use_cert_flag:
7271
if provided_cert_source:
73-
client_cert_source = provided_cert_source
72+
return provided_cert_source
7473
elif (
7574
hasattr(mtls, "has_default_client_cert_source")
7675
and mtls.has_default_client_cert_source()
7776
):
78-
client_cert_source = mtls.default_client_cert_source()
79-
return client_cert_source
77+
return mtls.default_client_cert_source()
78+
else:
79+
raise ValueError(
80+
"Client certificate is required for mTLS, but no client certificate source was provided or found."
81+
)
82+
return None

packages/google-api-core/tests/unit/gapic/test_client_cert.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ def custom_hasattr(obj, name):
9191
(b"provided", False, True, b"default", None),
9292
(b"provided", True, True, b"default", b"provided"),
9393
(None, True, True, b"default", b"default"),
94-
(None, True, False, b"default", None),
94+
(None, True, False, b"default", "value_error"),
9595
],
9696
ids=[
9797
"use_cert_false_no_provided",
@@ -122,4 +122,10 @@ def custom_hasattr(obj, name):
122122
create=True,
123123
return_value=default_val,
124124
):
125-
assert get_client_cert_source(provided, use_cert) == expected
125+
if expected == "value_error":
126+
with pytest.raises(
127+
ValueError, match="Client certificate is required for mTLS"
128+
):
129+
get_client_cert_source(provided, use_cert)
130+
else:
131+
assert get_client_cert_source(provided, use_cert) == expected

0 commit comments

Comments
 (0)