Skip to content

Commit

Permalink
Pass credentials to underlying clients in TableClient
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
shunghsiyu committed Oct 17, 2019
1 parent 02f2dc2 commit 60676df
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 60676df

Please sign in to comment.