Skip to content

Commit bd15409

Browse files
committed
address feedback
1 parent a3d4c58 commit bd15409

2 files changed

Lines changed: 22 additions & 17 deletions

File tree

packages/gapic-generator/tests/system/conftest.py

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -424,7 +424,7 @@ async def intercept_stream_stream(
424424

425425

426426
@pytest.fixture
427-
def intercepted_echo_grpc(use_tls):
427+
def intercepted_echo_grpc(use_mtls, use_tls):
428428
# The interceptor adds 'showcase-trailer' client metadata. Showcase server
429429
# echoes any metadata with key 'showcase-trailer', so the same metadata
430430
# should appear as trailing metadata in the response.
@@ -433,11 +433,12 @@ def intercepted_echo_grpc(use_tls):
433433
"intercepted",
434434
)
435435
host = "localhost:7469"
436-
channel = (
437-
grpc.secure_channel(host, tls_credentials)
438-
if use_tls
439-
else grpc.insecure_channel(host)
440-
)
436+
if use_mtls:
437+
channel = grpc.secure_channel(host, ssl_credentials)
438+
elif use_tls:
439+
channel = grpc.secure_channel(host, tls_credentials)
440+
else:
441+
channel = grpc.insecure_channel(host)
441442
intercept_channel = grpc.intercept_channel(channel, interceptor)
442443
transport = EchoClient.get_transport_class("grpc")(
443444
credentials=ga_credentials.AnonymousCredentials(),
@@ -447,7 +448,7 @@ def intercepted_echo_grpc(use_tls):
447448

448449

449450
@pytest_asyncio.fixture
450-
async def intercepted_echo_grpc_async(use_tls):
451+
async def intercepted_echo_grpc_async(use_mtls, use_tls):
451452
# The interceptor adds 'showcase-trailer' client metadata. Showcase server
452453
# echoes any metadata with key 'showcase-trailer', so the same metadata
453454
# should appear as trailing metadata in the response.
@@ -456,11 +457,12 @@ async def intercepted_echo_grpc_async(use_tls):
456457
"intercepted",
457458
)
458459
host = "localhost:7469"
459-
channel = (
460-
grpc.aio.secure_channel(host, tls_credentials, interceptors=[interceptor])
461-
if use_tls
462-
else grpc.aio.insecure_channel(host, interceptors=[interceptor])
463-
)
460+
if use_mtls:
461+
channel = grpc.aio.secure_channel(host, ssl_credentials, interceptors=[interceptor])
462+
elif use_tls:
463+
channel = grpc.aio.secure_channel(host, tls_credentials, interceptors=[interceptor])
464+
else:
465+
channel = grpc.aio.insecure_channel(host, interceptors=[interceptor])
464466
transport = EchoAsyncClient.get_transport_class("grpc_asyncio")(
465467
credentials=ga_credentials.AnonymousCredentials(),
466468
channel=channel,
@@ -476,21 +478,23 @@ def cert_verify(self, conn, url, verify, cert):
476478

477479

478480
@pytest.fixture
479-
def intercepted_echo_rest(use_tls):
481+
def intercepted_echo_rest(use_mtls, use_tls):
480482
transport_name = "rest"
481483
transport_cls = EchoClient.get_transport_class(transport_name)
482484
interceptor = EchoMetadataClientRestInterceptor()
483485

484-
url_scheme = "https" if use_tls else "http"
486+
url_scheme = "https" if (use_mtls or use_tls) else "http"
485487
transport = transport_cls(
486488
credentials=ga_credentials.AnonymousCredentials(),
487489
host="localhost:7469",
488490
url_scheme=url_scheme,
489491
interceptor=interceptor,
490492
)
491-
if use_tls:
493+
if use_mtls or use_tls:
492494
transport._session.verify = CERT_PATH
493495
transport._session.mount("https://", HostNameIgnoringAdapter())
496+
if use_mtls:
497+
transport._session.cert = (CERT_PATH, KEY_PATH)
494498

495499
return EchoClient(transport=transport), interceptor
496500

packages/gapic-generator/tests/system/test_pqc.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,11 @@ def _verify_pqc_metadata(interceptor, transport_name):
3434
assert negotiated_group is not None, "Failed: Showcase server did not return negotiated TLS group header."
3535
assert supported_groups is not None, "Failed: Showcase server did not return client advertised supported groups."
3636

37-
# Enforce PQC compliance (X25519MLKEM768)
37+
# Enforce PQC compliance by verifying an MLKEM group (e.g. X25519MLKEM768) was negotiated.
38+
# Substring check ("MLKEM" in ...) allows compatibility across gRPC and REST implementation strings.
3839
assert (
3940
"MLKEM" in negotiated_group
40-
), f"Failed: {transport_name} Connection did not negotiate X25519MLKEM768! Negotiated: {negotiated_group}"
41+
), f"Failed: {transport_name} Connection did not negotiate an MLKEM group (e.g. X25519MLKEM768)! Negotiated: {negotiated_group}"
4142

4243

4344
def test_pqc_grpc(intercepted_echo_grpc):

0 commit comments

Comments
 (0)