Skip to content

Commit

Permalink
fix(automl): pass credentials to underlying clients in TableClient (#…
Browse files Browse the repository at this point in the history
…9491)

In automl_v1beta1.TablesClient.__init__(), the credentials
are not given to AutoMlClient and PredictionServiceClient,
causing inconsistency between the credentials that was passed
and the credentials that was actually used for API calls.

This commit ensures that credentials are passed, and add two
unittests to catch the behavior.

Fixes #9490
  • Loading branch information
shunghsiyu authored and busunkim96 committed Oct 28, 2019
1 parent 8e7e89c commit 9e5ca9a
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 2 deletions.
4 changes: 2 additions & 2 deletions automl/google/cloud/automl_v1beta1/tables/tables_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,14 +107,14 @@ def __init__(

if client is None:
self.auto_ml_client = gapic.auto_ml_client.AutoMlClient(
client_info=client_info_, **kwargs
credentials=credentials, client_info=client_info_, **kwargs
)
else:
self.auto_ml_client = client

if prediction_client is None:
self.prediction_client = gapic.prediction_service_client.PredictionServiceClient(
client_info=client_info_, **kwargs
credentials=credentials, client_info=client_info_, **kwargs
)
else:
self.prediction_client = prediction_client
Expand Down
22 changes: 22 additions & 0 deletions automl/tests/unit/gapic/v1beta1/test_tables_client_v1beta1.py
Original file line number Diff line number Diff line change
Expand Up @@ -1379,3 +1379,25 @@ def test_batch_predict_no_model(self):
)
client.auto_ml_client.list_models.assert_not_called()
client.prediction_client.batch_predict.assert_not_called()

def test_auto_ml_client_credentials(self):
credentials_mock = mock.Mock()
patch_auto_ml_client = mock.patch(
"google.cloud.automl_v1beta1.gapic.auto_ml_client.AutoMlClient"
)
with patch_auto_ml_client as MockAutoMlClient:
client = automl_v1beta1.TablesClient(credentials=credentials_mock)
_, auto_ml_client_kwargs = MockAutoMlClient.call_args
assert "credentials" in auto_ml_client_kwargs
assert auto_ml_client_kwargs["credentials"] == credentials_mock

def test_prediction_client_credentials(self):
credentials_mock = mock.Mock()
patch_prediction_client = mock.patch(
"google.cloud.automl_v1beta1.gapic.prediction_service_client.PredictionServiceClient"
)
with patch_prediction_client as MockPredictionClient:
client = automl_v1beta1.TablesClient(credentials=credentials_mock)
_, prediction_client_kwargs = MockPredictionClient.call_args
assert "credentials" in prediction_client_kwargs
assert prediction_client_kwargs["credentials"] == credentials_mock

0 comments on commit 9e5ca9a

Please sign in to comment.