Skip to content

Commit

Permalink
test: test default_host
Browse files Browse the repository at this point in the history
  • Loading branch information
busunkim96 committed Jan 20, 2021
1 parent 4cd74e4 commit 02de988
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 10 deletions.
18 changes: 11 additions & 7 deletions google/api_core/grpc_helpers.py
Expand Up @@ -183,8 +183,7 @@ def _create_composite_credentials(
scopes=None,
ssl_credentials=None,
quota_project_id=None,
default_host=None
):
default_host=None):
"""Create the composite credentials for secure channels.
Args:
Expand Down Expand Up @@ -216,13 +215,18 @@ def _create_composite_credentials(
"'credentials' and 'credentials_file' are mutually exclusive."
)


if credentials_file:
credentials, _ = google.auth.load_credentials_from_file(credentials_file,
scopes=scopes, default_scopes=default_scopes)
credentials, _ = google.auth.load_credentials_from_file(
credentials_file,
scopes=scopes,
default_scopes=default_scopes
)
elif credentials:
credentials = google.auth.credentials.with_scopes_if_required(credentials,
scopes=scopes, default_scopes=default_scopes)
credentials = google.auth.credentials.with_scopes_if_required(
credentials,
scopes=scopes,
default_scopes=default_scopes
)
else:
credentials, _ = google.auth.default(scopes=scopes, default_scopes=default_scopes)

Expand Down
25 changes: 24 additions & 1 deletion tests/asyncio/test_grpc_helpers_async.py
Expand Up @@ -277,6 +277,30 @@ def test_create_channel_implicit(grpc_secure_channel, default, composite_creds_c
grpc_secure_channel.assert_called_once_with(target, composite_creds)


@mock.patch("google.auth.transport.grpc.AuthMetadataPlugin")
@mock.patch(
"google.auth.transport.requests.Request",
return_value=mock.sentinel.Request
)
@mock.patch("grpc.composite_channel_credentials")
@mock.patch(
"google.auth.default",
return_value=(mock.sentinel.credentials, mock.sentinel.projet),
)
@mock.patch("grpc.experimental.aio.secure_channel")
def test_create_channel_implicit_with_default_host(grpc_secure_channel, default, composite_creds_call, request, auth_metadata_plugin):
target = "example.com:443"
default_host = "example.com"
composite_creds = composite_creds_call.return_value

channel = grpc_helpers_async.create_channel(target, default_host=default_host)

assert channel is grpc_secure_channel.return_value
default.assert_called_once_with(scopes=None, default_scopes=None)
auth_metadata_plugin.assert_called_once_with(mock.sentinel.credentials, mock.sentinel.Request, default_host=default_host)
grpc_secure_channel.assert_called_once_with(target, composite_creds)


@mock.patch("grpc.composite_channel_credentials")
@mock.patch(
"google.auth.default",
Expand Down Expand Up @@ -402,7 +426,6 @@ def test_create_channel_explicit_default_scopes(grpc_secure_channel, composite_c
grpc_secure_channel.assert_called_once_with(target, composite_creds)



@mock.patch("grpc.composite_channel_credentials")
@mock.patch("grpc.experimental.aio.secure_channel")
def test_create_channel_explicit_with_quota_project(grpc_secure_channel, composite_creds_call):
Expand Down
31 changes: 29 additions & 2 deletions tests/unit/test_grpc_helpers.py
Expand Up @@ -239,6 +239,34 @@ def test_create_channel_implicit(grpc_secure_channel, default, composite_creds_c
grpc_secure_channel.assert_called_once_with(target, composite_creds)


@mock.patch("google.auth.transport.grpc.AuthMetadataPlugin")
@mock.patch(
"google.auth.transport.requests.Request",
return_value=mock.sentinel.Request
)
@mock.patch("grpc.composite_channel_credentials")
@mock.patch(
"google.auth.default",
return_value=(mock.sentinel.credentials, mock.sentinel.project),
)
@mock.patch("grpc.secure_channel")
def test_create_channel_implicit_with_default_host(grpc_secure_channel, default, composite_creds_call, request, auth_metadata_plugin):
target = "example.com:443"
default_host = "example.com"
composite_creds = composite_creds_call.return_value

channel = grpc_helpers.create_channel(target, default_host=default_host)

assert channel is grpc_secure_channel.return_value
default.assert_called_once_with(scopes=None, default_scopes=None)
auth_metadata_plugin.assert_called_once_with(mock.sentinel.credentials, mock.sentinel.Request, default_host=default_host)

if grpc_helpers.HAS_GRPC_GCP:
grpc_secure_channel.assert_called_once_with(target, composite_creds, None)
else:
grpc_secure_channel.assert_called_once_with(target, composite_creds)


@mock.patch("grpc.composite_channel_credentials")
@mock.patch(
"google.auth.default",
Expand Down Expand Up @@ -355,7 +383,7 @@ def test_create_channel_explicit_scoped(grpc_secure_channel, composite_creds_cal
grpc_secure_channel.assert_called_once_with(target, composite_creds, None)
else:
grpc_secure_channel.assert_called_once_with(target, composite_creds)


@mock.patch("grpc.composite_channel_credentials")
@mock.patch("grpc.secure_channel")
Expand Down Expand Up @@ -479,7 +507,6 @@ def test_create_channel_with_credentials_file_and_default_scopes(load_credential
grpc_secure_channel.assert_called_once_with(target, composite_creds)



@pytest.mark.skipif(
not grpc_helpers.HAS_GRPC_GCP, reason="grpc_gcp module not available"
)
Expand Down

0 comments on commit 02de988

Please sign in to comment.