From 2faf01b135360586ef27c66976646593fd85fd1e Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 10 Dec 2020 20:31:56 -0800 Subject: [PATCH] feat: add support for ssl credentials; add throttled field to UpdateDatabaseDdlMetadata (#161) * changes without context autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. * chore: revert breaking docstrings and unneeded bigquery doc ignore Co-authored-by: larkee --- docs/spanner_admin_database_v1/types.rst | 1 + docs/spanner_admin_instance_v1/types.rst | 1 + docs/spanner_v1/types.rst | 1 + .../proto/spanner_database_admin.proto | 5 + .../database_admin/transports/grpc.py | 4 + .../database_admin/transports/grpc_asyncio.py | 4 + .../types/spanner_database_admin.py | 8 + .../instance_admin/transports/grpc.py | 4 + .../instance_admin/transports/grpc_asyncio.py | 4 + .../services/spanner/transports/grpc.py | 4 + .../spanner/transports/grpc_asyncio.py | 4 + ...ixup_spanner_admin_database_v1_keywords.py | 1 + ...ixup_spanner_admin_instance_v1_keywords.py | 1 + scripts/fixup_spanner_v1_keywords.py | 1 + synth.metadata | 151 +++++++++++++++++- .../test_database_admin.py | 3 + .../test_instance_admin.py | 3 + tests/unit/gapic/spanner_v1/test_spanner.py | 3 + 18 files changed, 201 insertions(+), 2 deletions(-) diff --git a/docs/spanner_admin_database_v1/types.rst b/docs/spanner_admin_database_v1/types.rst index da44c33458..fe6c27778b 100644 --- a/docs/spanner_admin_database_v1/types.rst +++ b/docs/spanner_admin_database_v1/types.rst @@ -3,3 +3,4 @@ Types for Google Cloud Spanner Admin Database v1 API .. automodule:: google.cloud.spanner_admin_database_v1.types :members: + :show-inheritance: diff --git a/docs/spanner_admin_instance_v1/types.rst b/docs/spanner_admin_instance_v1/types.rst index b496dfc681..250cf6bf9b 100644 --- a/docs/spanner_admin_instance_v1/types.rst +++ b/docs/spanner_admin_instance_v1/types.rst @@ -3,3 +3,4 @@ Types for Google Cloud Spanner Admin Instance v1 API .. automodule:: google.cloud.spanner_admin_instance_v1.types :members: + :show-inheritance: diff --git a/docs/spanner_v1/types.rst b/docs/spanner_v1/types.rst index 15b938d7f3..c7ff7e6c71 100644 --- a/docs/spanner_v1/types.rst +++ b/docs/spanner_v1/types.rst @@ -3,3 +3,4 @@ Types for Google Cloud Spanner v1 API .. automodule:: google.cloud.spanner_v1.types :members: + :show-inheritance: diff --git a/google/cloud/spanner_admin_database_v1/proto/spanner_database_admin.proto b/google/cloud/spanner_admin_database_v1/proto/spanner_database_admin.proto index af440c1a36..db6192bc02 100644 --- a/google/cloud/spanner_admin_database_v1/proto/spanner_database_admin.proto +++ b/google/cloud/spanner_admin_database_v1/proto/spanner_database_admin.proto @@ -514,6 +514,11 @@ message UpdateDatabaseDdlMetadata { // succeeded so far, where `commit_timestamps[i]` is the commit // timestamp for the statement `statements[i]`. repeated google.protobuf.Timestamp commit_timestamps = 3; + + // Output only. When true, indicates that the operation is throttled e.g + // due to resource constraints. When resources become available the operation + // will resume and this field will be false again. + bool throttled = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; } // The request for [DropDatabase][google.spanner.admin.database.v1.DatabaseAdmin.DropDatabase]. diff --git a/google/cloud/spanner_admin_database_v1/services/database_admin/transports/grpc.py b/google/cloud/spanner_admin_database_v1/services/database_admin/transports/grpc.py index 0f8d56f05a..6e49fadc2d 100644 --- a/google/cloud/spanner_admin_database_v1/services/database_admin/transports/grpc.py +++ b/google/cloud/spanner_admin_database_v1/services/database_admin/transports/grpc.py @@ -113,6 +113,8 @@ def __init__( google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials`` and ``credentials_file`` are passed. """ + self._ssl_channel_credentials = ssl_channel_credentials + if channel: # Sanity check: Ensure that channel and credentials are not both # provided. @@ -120,6 +122,7 @@ def __init__( # If a channel was explicitly provided, set it. self._grpc_channel = channel + self._ssl_channel_credentials = None elif api_mtls_endpoint: warnings.warn( "api_mtls_endpoint and client_cert_source are deprecated", @@ -156,6 +159,7 @@ def __init__( scopes=scopes or self.AUTH_SCOPES, quota_project_id=quota_project_id, ) + self._ssl_channel_credentials = ssl_credentials else: host = host if ":" in host else host + ":443" diff --git a/google/cloud/spanner_admin_database_v1/services/database_admin/transports/grpc_asyncio.py b/google/cloud/spanner_admin_database_v1/services/database_admin/transports/grpc_asyncio.py index 45f2e2d9e6..0c652f165e 100644 --- a/google/cloud/spanner_admin_database_v1/services/database_admin/transports/grpc_asyncio.py +++ b/google/cloud/spanner_admin_database_v1/services/database_admin/transports/grpc_asyncio.py @@ -158,6 +158,8 @@ def __init__( google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials`` and ``credentials_file`` are passed. """ + self._ssl_channel_credentials = ssl_channel_credentials + if channel: # Sanity check: Ensure that channel and credentials are not both # provided. @@ -165,6 +167,7 @@ def __init__( # If a channel was explicitly provided, set it. self._grpc_channel = channel + self._ssl_channel_credentials = None elif api_mtls_endpoint: warnings.warn( "api_mtls_endpoint and client_cert_source are deprecated", @@ -201,6 +204,7 @@ def __init__( scopes=scopes or self.AUTH_SCOPES, quota_project_id=quota_project_id, ) + self._ssl_channel_credentials = ssl_credentials else: host = host if ":" in host else host + ":443" diff --git a/google/cloud/spanner_admin_database_v1/types/spanner_database_admin.py b/google/cloud/spanner_admin_database_v1/types/spanner_database_admin.py index b2b5939f5b..e99d200906 100644 --- a/google/cloud/spanner_admin_database_v1/types/spanner_database_admin.py +++ b/google/cloud/spanner_admin_database_v1/types/spanner_database_admin.py @@ -287,6 +287,12 @@ class UpdateDatabaseDdlMetadata(proto.Message): Reports the commit timestamps of all statements that have succeeded so far, where ``commit_timestamps[i]`` is the commit timestamp for the statement ``statements[i]``. + throttled (bool): + Output only. When true, indicates that the + operation is throttled e.g due to resource + constraints. When resources become available the + operation will resume and this field will be + false again. """ database = proto.Field(proto.STRING, number=1) @@ -297,6 +303,8 @@ class UpdateDatabaseDdlMetadata(proto.Message): proto.MESSAGE, number=3, message=timestamp.Timestamp, ) + throttled = proto.Field(proto.BOOL, number=4) + class DropDatabaseRequest(proto.Message): r"""The request for diff --git a/google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/grpc.py b/google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/grpc.py index a758bb6ad4..8315956a64 100644 --- a/google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/grpc.py +++ b/google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/grpc.py @@ -126,6 +126,8 @@ def __init__( google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials`` and ``credentials_file`` are passed. """ + self._ssl_channel_credentials = ssl_channel_credentials + if channel: # Sanity check: Ensure that channel and credentials are not both # provided. @@ -133,6 +135,7 @@ def __init__( # If a channel was explicitly provided, set it. self._grpc_channel = channel + self._ssl_channel_credentials = None elif api_mtls_endpoint: warnings.warn( "api_mtls_endpoint and client_cert_source are deprecated", @@ -169,6 +172,7 @@ def __init__( scopes=scopes or self.AUTH_SCOPES, quota_project_id=quota_project_id, ) + self._ssl_channel_credentials = ssl_credentials else: host = host if ":" in host else host + ":443" diff --git a/google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/grpc_asyncio.py b/google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/grpc_asyncio.py index 91fb40d1e7..2ff6bbac7f 100644 --- a/google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/grpc_asyncio.py +++ b/google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/grpc_asyncio.py @@ -171,6 +171,8 @@ def __init__( google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials`` and ``credentials_file`` are passed. """ + self._ssl_channel_credentials = ssl_channel_credentials + if channel: # Sanity check: Ensure that channel and credentials are not both # provided. @@ -178,6 +180,7 @@ def __init__( # If a channel was explicitly provided, set it. self._grpc_channel = channel + self._ssl_channel_credentials = None elif api_mtls_endpoint: warnings.warn( "api_mtls_endpoint and client_cert_source are deprecated", @@ -214,6 +217,7 @@ def __init__( scopes=scopes or self.AUTH_SCOPES, quota_project_id=quota_project_id, ) + self._ssl_channel_credentials = ssl_credentials else: host = host if ":" in host else host + ":443" diff --git a/google/cloud/spanner_v1/services/spanner/transports/grpc.py b/google/cloud/spanner_v1/services/spanner/transports/grpc.py index 620a971775..49cabd3896 100644 --- a/google/cloud/spanner_v1/services/spanner/transports/grpc.py +++ b/google/cloud/spanner_v1/services/spanner/transports/grpc.py @@ -106,6 +106,8 @@ def __init__( google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials`` and ``credentials_file`` are passed. """ + self._ssl_channel_credentials = ssl_channel_credentials + if channel: # Sanity check: Ensure that channel and credentials are not both # provided. @@ -113,6 +115,7 @@ def __init__( # If a channel was explicitly provided, set it. self._grpc_channel = channel + self._ssl_channel_credentials = None elif api_mtls_endpoint: warnings.warn( "api_mtls_endpoint and client_cert_source are deprecated", @@ -149,6 +152,7 @@ def __init__( scopes=scopes or self.AUTH_SCOPES, quota_project_id=quota_project_id, ) + self._ssl_channel_credentials = ssl_credentials else: host = host if ":" in host else host + ":443" diff --git a/google/cloud/spanner_v1/services/spanner/transports/grpc_asyncio.py b/google/cloud/spanner_v1/services/spanner/transports/grpc_asyncio.py index 79ab4a1f94..22b5b4c4f6 100644 --- a/google/cloud/spanner_v1/services/spanner/transports/grpc_asyncio.py +++ b/google/cloud/spanner_v1/services/spanner/transports/grpc_asyncio.py @@ -151,6 +151,8 @@ def __init__( google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials`` and ``credentials_file`` are passed. """ + self._ssl_channel_credentials = ssl_channel_credentials + if channel: # Sanity check: Ensure that channel and credentials are not both # provided. @@ -158,6 +160,7 @@ def __init__( # If a channel was explicitly provided, set it. self._grpc_channel = channel + self._ssl_channel_credentials = None elif api_mtls_endpoint: warnings.warn( "api_mtls_endpoint and client_cert_source are deprecated", @@ -194,6 +197,7 @@ def __init__( scopes=scopes or self.AUTH_SCOPES, quota_project_id=quota_project_id, ) + self._ssl_channel_credentials = ssl_credentials else: host = host if ":" in host else host + ":443" diff --git a/scripts/fixup_spanner_admin_database_v1_keywords.py b/scripts/fixup_spanner_admin_database_v1_keywords.py index 9f1a9bb9f1..96334a9f32 100644 --- a/scripts/fixup_spanner_admin_database_v1_keywords.py +++ b/scripts/fixup_spanner_admin_database_v1_keywords.py @@ -1,3 +1,4 @@ +#! /usr/bin/env python3 # -*- coding: utf-8 -*- # Copyright 2020 Google LLC diff --git a/scripts/fixup_spanner_admin_instance_v1_keywords.py b/scripts/fixup_spanner_admin_instance_v1_keywords.py index 0871592c96..eb5507ec97 100644 --- a/scripts/fixup_spanner_admin_instance_v1_keywords.py +++ b/scripts/fixup_spanner_admin_instance_v1_keywords.py @@ -1,3 +1,4 @@ +#! /usr/bin/env python3 # -*- coding: utf-8 -*- # Copyright 2020 Google LLC diff --git a/scripts/fixup_spanner_v1_keywords.py b/scripts/fixup_spanner_v1_keywords.py index 7c83aaf33d..bb76ae0e8c 100644 --- a/scripts/fixup_spanner_v1_keywords.py +++ b/scripts/fixup_spanner_v1_keywords.py @@ -1,3 +1,4 @@ +#! /usr/bin/env python3 # -*- coding: utf-8 -*- # Copyright 2020 Google LLC diff --git a/synth.metadata b/synth.metadata index bba4518649..e7a5def667 100644 --- a/synth.metadata +++ b/synth.metadata @@ -3,8 +3,16 @@ { "git": { "name": ".", - "remote": "git@github.com:larkee/python-spanner.git", - "sha": "1d3e65af688c31937b0110223679607c19c328e9" + "remote": "https://github.com/googleapis/python-spanner.git", + "sha": "af5a3c65fbf81a93c1b4d4a8a9f65f06e96df325" + } + }, + { + "git": { + "name": "googleapis", + "remote": "https://github.com/googleapis/googleapis.git", + "sha": "53eb2512a55caabcbad1898225080a2a3dfcb6aa", + "internalRef": "346818879" } }, { @@ -50,5 +58,144 @@ "generator": "bazel" } } + ], + "generatedFiles": [ + ".flake8", + ".github/CONTRIBUTING.md", + ".github/ISSUE_TEMPLATE/bug_report.md", + ".github/ISSUE_TEMPLATE/feature_request.md", + ".github/ISSUE_TEMPLATE/support_request.md", + ".github/PULL_REQUEST_TEMPLATE.md", + ".github/release-please.yml", + ".github/snippet-bot.yml", + ".gitignore", + ".kokoro/build.sh", + ".kokoro/continuous/common.cfg", + ".kokoro/continuous/continuous.cfg", + ".kokoro/docker/docs/Dockerfile", + ".kokoro/docker/docs/fetch_gpg_keys.sh", + ".kokoro/docs/common.cfg", + ".kokoro/docs/docs-presubmit.cfg", + ".kokoro/docs/docs.cfg", + ".kokoro/populate-secrets.sh", + ".kokoro/presubmit/common.cfg", + ".kokoro/presubmit/presubmit.cfg", + ".kokoro/publish-docs.sh", + ".kokoro/release.sh", + ".kokoro/release/common.cfg", + ".kokoro/release/release.cfg", + ".kokoro/samples/lint/common.cfg", + ".kokoro/samples/lint/continuous.cfg", + ".kokoro/samples/lint/periodic.cfg", + ".kokoro/samples/lint/presubmit.cfg", + ".kokoro/samples/python3.6/common.cfg", + ".kokoro/samples/python3.6/continuous.cfg", + ".kokoro/samples/python3.6/periodic.cfg", + ".kokoro/samples/python3.6/presubmit.cfg", + ".kokoro/samples/python3.7/common.cfg", + ".kokoro/samples/python3.7/continuous.cfg", + ".kokoro/samples/python3.7/periodic.cfg", + ".kokoro/samples/python3.7/presubmit.cfg", + ".kokoro/samples/python3.8/common.cfg", + ".kokoro/samples/python3.8/continuous.cfg", + ".kokoro/samples/python3.8/periodic.cfg", + ".kokoro/samples/python3.8/presubmit.cfg", + ".kokoro/test-samples.sh", + ".kokoro/trampoline.sh", + ".kokoro/trampoline_v2.sh", + ".trampolinerc", + "CODE_OF_CONDUCT.md", + "CONTRIBUTING.rst", + "LICENSE", + "MANIFEST.in", + "docs/_static/custom.css", + "docs/_templates/layout.html", + "docs/conf.py", + "docs/multiprocessing.rst", + "docs/spanner_admin_database_v1/services.rst", + "docs/spanner_admin_database_v1/types.rst", + "docs/spanner_admin_instance_v1/services.rst", + "docs/spanner_admin_instance_v1/types.rst", + "docs/spanner_v1/services.rst", + "docs/spanner_v1/types.rst", + "google/cloud/spanner_admin_database_v1/__init__.py", + "google/cloud/spanner_admin_database_v1/proto/backup.proto", + "google/cloud/spanner_admin_database_v1/proto/common.proto", + "google/cloud/spanner_admin_database_v1/proto/spanner_database_admin.proto", + "google/cloud/spanner_admin_database_v1/py.typed", + "google/cloud/spanner_admin_database_v1/services/__init__.py", + "google/cloud/spanner_admin_database_v1/services/database_admin/__init__.py", + "google/cloud/spanner_admin_database_v1/services/database_admin/async_client.py", + "google/cloud/spanner_admin_database_v1/services/database_admin/client.py", + "google/cloud/spanner_admin_database_v1/services/database_admin/pagers.py", + "google/cloud/spanner_admin_database_v1/services/database_admin/transports/__init__.py", + "google/cloud/spanner_admin_database_v1/services/database_admin/transports/base.py", + "google/cloud/spanner_admin_database_v1/services/database_admin/transports/grpc.py", + "google/cloud/spanner_admin_database_v1/services/database_admin/transports/grpc_asyncio.py", + "google/cloud/spanner_admin_database_v1/types/__init__.py", + "google/cloud/spanner_admin_database_v1/types/backup.py", + "google/cloud/spanner_admin_database_v1/types/common.py", + "google/cloud/spanner_admin_database_v1/types/spanner_database_admin.py", + "google/cloud/spanner_admin_instance_v1/__init__.py", + "google/cloud/spanner_admin_instance_v1/proto/spanner_instance_admin.proto", + "google/cloud/spanner_admin_instance_v1/py.typed", + "google/cloud/spanner_admin_instance_v1/services/__init__.py", + "google/cloud/spanner_admin_instance_v1/services/instance_admin/__init__.py", + "google/cloud/spanner_admin_instance_v1/services/instance_admin/async_client.py", + "google/cloud/spanner_admin_instance_v1/services/instance_admin/client.py", + "google/cloud/spanner_admin_instance_v1/services/instance_admin/pagers.py", + "google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/__init__.py", + "google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/base.py", + "google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/grpc.py", + "google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/grpc_asyncio.py", + "google/cloud/spanner_admin_instance_v1/types/__init__.py", + "google/cloud/spanner_admin_instance_v1/types/spanner_instance_admin.py", + "google/cloud/spanner_v1/proto/keys.proto", + "google/cloud/spanner_v1/proto/mutation.proto", + "google/cloud/spanner_v1/proto/query_plan.proto", + "google/cloud/spanner_v1/proto/result_set.proto", + "google/cloud/spanner_v1/proto/spanner.proto", + "google/cloud/spanner_v1/proto/transaction.proto", + "google/cloud/spanner_v1/proto/type.proto", + "google/cloud/spanner_v1/py.typed", + "google/cloud/spanner_v1/services/__init__.py", + "google/cloud/spanner_v1/services/spanner/__init__.py", + "google/cloud/spanner_v1/services/spanner/async_client.py", + "google/cloud/spanner_v1/services/spanner/client.py", + "google/cloud/spanner_v1/services/spanner/pagers.py", + "google/cloud/spanner_v1/services/spanner/transports/__init__.py", + "google/cloud/spanner_v1/services/spanner/transports/base.py", + "google/cloud/spanner_v1/services/spanner/transports/grpc.py", + "google/cloud/spanner_v1/services/spanner/transports/grpc_asyncio.py", + "google/cloud/spanner_v1/types/__init__.py", + "google/cloud/spanner_v1/types/keys.py", + "google/cloud/spanner_v1/types/mutation.py", + "google/cloud/spanner_v1/types/query_plan.py", + "google/cloud/spanner_v1/types/result_set.py", + "google/cloud/spanner_v1/types/spanner.py", + "google/cloud/spanner_v1/types/transaction.py", + "google/cloud/spanner_v1/types/type.py", + "renovate.json", + "samples/AUTHORING_GUIDE.md", + "samples/CONTRIBUTING.md", + "samples/samples/noxfile.py", + "scripts/decrypt-secrets.sh", + "scripts/fixup_spanner_admin_database_v1_keywords.py", + "scripts/fixup_spanner_admin_instance_v1_keywords.py", + "scripts/fixup_spanner_v1_keywords.py", + "scripts/readme-gen/readme_gen.py", + "scripts/readme-gen/templates/README.tmpl.rst", + "scripts/readme-gen/templates/auth.tmpl.rst", + "scripts/readme-gen/templates/auth_api_key.tmpl.rst", + "scripts/readme-gen/templates/install_deps.tmpl.rst", + "scripts/readme-gen/templates/install_portaudio.tmpl.rst", + "setup.cfg", + "testing/.gitignore", + "tests/unit/gapic/spanner_admin_database_v1/__init__.py", + "tests/unit/gapic/spanner_admin_database_v1/test_database_admin.py", + "tests/unit/gapic/spanner_admin_instance_v1/__init__.py", + "tests/unit/gapic/spanner_admin_instance_v1/test_instance_admin.py", + "tests/unit/gapic/spanner_v1/__init__.py", + "tests/unit/gapic/spanner_v1/test_spanner.py" ] } \ No newline at end of file diff --git a/tests/unit/gapic/spanner_admin_database_v1/test_database_admin.py b/tests/unit/gapic/spanner_admin_database_v1/test_database_admin.py index ea79f63e86..753e8f330e 100644 --- a/tests/unit/gapic/spanner_admin_database_v1/test_database_admin.py +++ b/tests/unit/gapic/spanner_admin_database_v1/test_database_admin.py @@ -4725,6 +4725,7 @@ def test_database_admin_grpc_transport_channel(): ) assert transport.grpc_channel == channel assert transport._host == "squid.clam.whelk:443" + assert transport._ssl_channel_credentials == None def test_database_admin_grpc_asyncio_transport_channel(): @@ -4736,6 +4737,7 @@ def test_database_admin_grpc_asyncio_transport_channel(): ) assert transport.grpc_channel == channel assert transport._host == "squid.clam.whelk:443" + assert transport._ssl_channel_credentials == None @pytest.mark.parametrize( @@ -4784,6 +4786,7 @@ def test_database_admin_transport_channel_mtls_with_client_cert_source(transport quota_project_id=None, ) assert transport.grpc_channel == mock_grpc_channel + assert transport._ssl_channel_credentials == mock_ssl_cred @pytest.mark.parametrize( diff --git a/tests/unit/gapic/spanner_admin_instance_v1/test_instance_admin.py b/tests/unit/gapic/spanner_admin_instance_v1/test_instance_admin.py index 0db8185b79..cca2e25400 100644 --- a/tests/unit/gapic/spanner_admin_instance_v1/test_instance_admin.py +++ b/tests/unit/gapic/spanner_admin_instance_v1/test_instance_admin.py @@ -3082,6 +3082,7 @@ def test_instance_admin_grpc_transport_channel(): ) assert transport.grpc_channel == channel assert transport._host == "squid.clam.whelk:443" + assert transport._ssl_channel_credentials == None def test_instance_admin_grpc_asyncio_transport_channel(): @@ -3093,6 +3094,7 @@ def test_instance_admin_grpc_asyncio_transport_channel(): ) assert transport.grpc_channel == channel assert transport._host == "squid.clam.whelk:443" + assert transport._ssl_channel_credentials == None @pytest.mark.parametrize( @@ -3141,6 +3143,7 @@ def test_instance_admin_transport_channel_mtls_with_client_cert_source(transport quota_project_id=None, ) assert transport.grpc_channel == mock_grpc_channel + assert transport._ssl_channel_credentials == mock_ssl_cred @pytest.mark.parametrize( diff --git a/tests/unit/gapic/spanner_v1/test_spanner.py b/tests/unit/gapic/spanner_v1/test_spanner.py index d891f27d94..7767ae5141 100644 --- a/tests/unit/gapic/spanner_v1/test_spanner.py +++ b/tests/unit/gapic/spanner_v1/test_spanner.py @@ -3190,6 +3190,7 @@ def test_spanner_grpc_transport_channel(): ) assert transport.grpc_channel == channel assert transport._host == "squid.clam.whelk:443" + assert transport._ssl_channel_credentials == None def test_spanner_grpc_asyncio_transport_channel(): @@ -3201,6 +3202,7 @@ def test_spanner_grpc_asyncio_transport_channel(): ) assert transport.grpc_channel == channel assert transport._host == "squid.clam.whelk:443" + assert transport._ssl_channel_credentials == None @pytest.mark.parametrize( @@ -3246,6 +3248,7 @@ def test_spanner_transport_channel_mtls_with_client_cert_source(transport_class) quota_project_id=None, ) assert transport.grpc_channel == mock_grpc_channel + assert transport._ssl_channel_credentials == mock_ssl_cred @pytest.mark.parametrize(