Skip to content

Commit e360864

Browse files
authored
feat(error_reporting): add client_options to constructor (#9152)
1 parent 01d80df commit e360864

File tree

6 files changed

+59
-10
lines changed

6 files changed

+59
-10
lines changed

packages/google-cloud-error-reporting/google/cloud/error_reporting/_gapic.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@ def make_report_error_api(client):
2929
:returns: An Error Reporting API instance.
3030
"""
3131
gapic_api = report_errors_service_client.ReportErrorsServiceClient(
32-
credentials=client._credentials, client_info=client._client_info
32+
credentials=client._credentials,
33+
client_info=client._client_info,
34+
client_options=client._client_options,
3335
)
3436
return _ErrorReportingGapicApi(gapic_api, client.project)
3537

packages/google-cloud-error-reporting/google/cloud/error_reporting/_logging.py

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,27 @@ class _ErrorReportingLoggingAPI(object):
5454
requests. If ``None``, then default info will be used. Generally,
5555
you only need to set this if you're developing your own library
5656
or partner tool.
57+
58+
:type client_options: :class:`~google.api_core.client_options.ClientOptions`
59+
or :class:`dict`
60+
:param client_options: (Optional) Client options used to set user options
61+
on the client. API Endpoint should be set through client_options.
5762
"""
5863

59-
def __init__(self, project, credentials=None, _http=None, client_info=None):
64+
def __init__(
65+
self,
66+
project,
67+
credentials=None,
68+
_http=None,
69+
client_info=None,
70+
client_options=None,
71+
):
6072
self.logging_client = google.cloud.logging.client.Client(
61-
project, credentials, _http=_http, client_info=client_info
73+
project,
74+
credentials,
75+
_http=_http,
76+
client_info=client_info,
77+
client_options=client_options,
6278
)
6379

6480
def report_error_event(self, error_report):

packages/google-cloud-error-reporting/google/cloud/error_reporting/client.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,11 @@ class Client(ClientWithProject):
143143
you only need to set this if you're developing your own library
144144
or partner tool.
145145
146+
:type client_options: :class:`~google.api_core.client_options.ClientOptions`
147+
or :class:`dict`
148+
:param client_options: (Optional) Client options used to set user options
149+
on the client. API Endpoint should be set through client_options.
150+
146151
:raises: :class:`ValueError` if the project is neither passed in nor
147152
set in the environment.
148153
"""
@@ -158,6 +163,7 @@ def __init__(
158163
service=None,
159164
version=None,
160165
client_info=_CLIENT_INFO,
166+
client_options=None,
161167
_use_grpc=None,
162168
):
163169
super(Client, self).__init__(
@@ -168,6 +174,7 @@ def __init__(
168174
self.service = service if service else self.DEFAULT_SERVICE
169175
self.version = version
170176
self._client_info = client_info
177+
self._client_options = client_options
171178

172179
if _use_grpc is None:
173180
self._use_grpc = _USE_GRPC
@@ -195,7 +202,11 @@ def report_errors_api(self):
195202
self._report_errors_api = make_report_error_api(self)
196203
else:
197204
self._report_errors_api = _ErrorReportingLoggingAPI(
198-
self.project, self._credentials, self._http, self._client_info
205+
self.project,
206+
self._credentials,
207+
self._http,
208+
self._client_info,
209+
self._client_options,
199210
)
200211
return self._report_errors_api
201212

packages/google-cloud-error-reporting/tests/unit/test__gapic.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@ def _call_fut(client):
2525
return make_report_error_api(client)
2626

2727
def test_make_report_error_api(self):
28-
client = mock.Mock(spec=["project", "_credentials", "_client_info"])
28+
client = mock.Mock(
29+
spec=["project", "_credentials", "_client_info", "_client_options"]
30+
)
2931

3032
# Call the function being tested.
3133
patch = mock.patch(
@@ -41,7 +43,9 @@ def test_make_report_error_api(self):
4143
self.assertIs(report_error_client._project, client.project)
4244
self.assertIs(report_error_client._gapic_api, patched.return_value)
4345
patched.assert_called_once_with(
44-
credentials=client._credentials, client_info=client._client_info
46+
credentials=client._credentials,
47+
client_info=client._client_info,
48+
client_options=client._client_options,
4549
)
4650

4751

packages/google-cloud-error-reporting/tests/unit/test__logging.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,22 +40,31 @@ def test_ctor_defaults(self, mocked_cls):
4040

4141
self.assertIs(logging_api.logging_client, mocked_cls.return_value)
4242
mocked_cls.assert_called_once_with(
43-
self.PROJECT, credentials, _http=None, client_info=None
43+
self.PROJECT, credentials, _http=None, client_info=None, client_options=None
4444
)
4545

4646
@mock.patch("google.cloud.logging.client.Client")
4747
def test_ctor_explicit(self, mocked_cls):
4848
credentials = _make_credentials()
4949
http = mock.Mock()
5050
client_info = mock.Mock()
51+
client_options = mock.Mock()
5152

5253
logging_api = self._make_one(
53-
self.PROJECT, credentials, _http=http, client_info=client_info
54+
self.PROJECT,
55+
credentials,
56+
_http=http,
57+
client_info=client_info,
58+
client_options=client_options,
5459
)
5560

5661
self.assertIs(logging_api.logging_client, mocked_cls.return_value)
5762
mocked_cls.assert_called_once_with(
58-
self.PROJECT, credentials, _http=http, client_info=client_info
63+
self.PROJECT,
64+
credentials,
65+
_http=http,
66+
client_info=client_info,
67+
client_options=client_options,
5968
)
6069

6170
@mock.patch("google.cloud.logging.client.Client")

packages/google-cloud-error-reporting/tests/unit/test_client.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,16 +67,19 @@ def test_ctor_defaults(self, default_mock):
6767
def test_ctor_explicit(self):
6868
credentials = _make_credentials()
6969
client_info = mock.Mock()
70+
client_options = mock.Mock()
7071
client = self._make_one(
7172
project=self.PROJECT,
7273
credentials=credentials,
7374
service=self.SERVICE,
7475
version=self.VERSION,
7576
client_info=client_info,
77+
client_options=client_options,
7678
)
7779
self.assertEqual(client.service, self.SERVICE)
7880
self.assertEqual(client.version, self.VERSION)
7981
self.assertIs(client._client_info, client_info)
82+
self.assertIs(client._client_options, client_options)
8083

8184
def test_report_errors_api_already(self):
8285
credentials = _make_credentials()
@@ -87,11 +90,13 @@ def test_report_errors_api_already(self):
8790
def test_report_errors_api_wo_grpc(self):
8891
credentials = _make_credentials()
8992
client_info = mock.Mock()
93+
client_options = mock.Mock()
9094
http = mock.Mock()
9195
client = self._make_one(
9296
project=self.PROJECT,
9397
credentials=credentials,
9498
client_info=client_info,
99+
client_options=client_options,
95100
_http=http,
96101
_use_grpc=False,
97102
)
@@ -103,7 +108,9 @@ def test_report_errors_api_wo_grpc(self):
103108
api = client.report_errors_api
104109

105110
self.assertIs(api, patched.return_value)
106-
patched.assert_called_once_with(self.PROJECT, credentials, http, client_info)
111+
patched.assert_called_once_with(
112+
self.PROJECT, credentials, http, client_info, client_options
113+
)
107114

108115
def test_report_errors_api_w_grpc(self):
109116
credentials = _make_credentials()

0 commit comments

Comments
 (0)