Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 08d38a8

Browse files
author
Bilal Al
committed
polish
1 parent 5900f26 commit 08d38a8

File tree

2 files changed

+22
-14
lines changed

2 files changed

+22
-14
lines changed

splitio/api/client.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
TELEMETRY_URL = 'https://telemetry.split.io/api'
2020

2121
_LOGGER = logging.getLogger(__name__)
22-
22+
_EXC_MSG = '{source} library is throwing exceptions'
2323

2424
HttpResponse = namedtuple('HttpResponse', ['status_code', 'body', 'headers'])
2525

@@ -173,7 +173,7 @@ def get(self, server, path, sdk_key, query=None, extra_headers=None): # pylint:
173173
return HttpResponse(response.status_code, response.text, response.headers)
174174

175175
except Exception as exc: # pylint: disable=broad-except
176-
raise HttpClientException('requests library is throwing exceptions') from exc
176+
raise HttpClientException(_EXC_MSG.format(source='request')) from exc
177177

178178
def post(self, server, path, sdk_key, body, query=None, extra_headers=None): # pylint: disable=too-many-arguments
179179
"""
@@ -208,7 +208,7 @@ def post(self, server, path, sdk_key, body, query=None, extra_headers=None): #
208208
self._record_telemetry(response.status_code, get_current_epoch_time_ms() - start)
209209
return HttpResponse(response.status_code, response.text, response.headers)
210210
except Exception as exc: # pylint: disable=broad-except
211-
raise HttpClientException('requests library is throwing exceptions') from exc
211+
raise HttpClientException(_EXC_MSG.format(source='request')) from exc
212212

213213
def _record_telemetry(self, status_code, elapsed):
214214
"""
@@ -285,7 +285,7 @@ async def get(self, server, path, apikey, query=None, extra_headers=None): # py
285285
return HttpResponse(response.status, body, response.headers)
286286

287287
except aiohttp.ClientError as exc: # pylint: disable=broad-except
288-
raise HttpClientException('aiohttp library is throwing exceptions') from exc
288+
raise HttpClientException(_EXC_MSG.format(source='aiohttp')) from exc
289289

290290
async def post(self, server, path, apikey, body, query=None, extra_headers=None): # pylint: disable=too-many-arguments
291291
"""
@@ -329,7 +329,7 @@ async def post(self, server, path, apikey, body, query=None, extra_headers=None)
329329
return HttpResponse(response.status, body, response.headers)
330330

331331
except aiohttp.ClientError as exc: # pylint: disable=broad-except
332-
raise HttpClientException('aiohttp library is throwing exceptions') from exc
332+
raise HttpClientException(_EXC_MSG.format(source='aiohttp')) from exc
333333

334334
async def _record_telemetry(self, status_code, elapsed):
335335
"""
@@ -371,7 +371,7 @@ def __init__(self, timeout=None, sdk_url=None, events_url=None, auth_url=None, t
371371
:type telemetry_url: str
372372
"""
373373
_LOGGER.debug("Initializing httpclient for Kerberos auth")
374-
HttpClient.__init__(self, timeout, sdk_url, events_url, auth_url, telemetry_url)
374+
HttpClient.__init__(self, timeout=timeout, sdk_url=sdk_url, events_url=events_url, auth_url=auth_url, telemetry_url=telemetry_url)
375375
self._authentication_scheme = authentication_scheme
376376
self._authentication_params = authentication_params
377377

@@ -408,7 +408,7 @@ def get(self, server, path, sdk_key, query=None, extra_headers=None): # pylint:
408408
return HttpResponse(response.status_code, response.text, response.headers)
409409

410410
except Exception as exc: # pylint: disable=broad-except
411-
raise HttpClientException('requests library is throwing exceptions') from exc
411+
raise HttpClientException(_EXC_MSG.format(source='request')) from exc
412412

413413
def post(self, server, path, sdk_key, body, query=None, extra_headers=None): # pylint: disable=too-many-arguments
414414
"""
@@ -445,7 +445,7 @@ def post(self, server, path, sdk_key, body, query=None, extra_headers=None): #
445445
self._record_telemetry(response.status_code, get_current_epoch_time_ms() - start)
446446
return HttpResponse(response.status_code, response.text, response.headers)
447447
except Exception as exc: # pylint: disable=broad-except
448-
raise HttpClientException('requests library is throwing exceptions') from exc
448+
raise HttpClientException(_EXC_MSG.format(source='request')) from exc
449449

450450
def _set_authentication(self, session):
451451
if self._authentication_scheme == AuthenticateScheme.KERBEROS_SPNEGO:

tests/api/test_httpclient.py

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,6 @@ def test_authentication_scheme(self, mocker):
168168
headers={'Authorization': 'Bearer some_api_key', 'h1': 'abc', 'Content-Type': 'application/json'},
169169
params={'param1': 123},
170170
timeout=None
171-
# auth=HTTPKerberosAuth(mutual_authentication=OPTIONAL)
172171
)
173172
assert response.status_code == 200
174173
assert response.body == 'ok'
@@ -183,28 +182,37 @@ def test_authentication_scheme(self, mocker):
183182
headers={'Authorization': 'Bearer some_api_key', 'h1': 'abc', 'Content-Type': 'application/json'},
184183
params={'param1': 123},
185184
timeout=None
186-
# auth=HTTPKerberosAuth(principal='bilal', password='split', mutual_authentication=OPTIONAL)
187185
)
188186
assert response.status_code == 200
189187
assert response.body == 'ok'
190188
assert get_mock.mock_calls == [call]
191189
get_mock.reset_mock()
192190

193-
httpclient = client.HttpClientKerberos(sdk_url='https://sdk.com', authentication_scheme=AuthenticateScheme.KERBEROS_PROXY, authentication_params=[None, None])
191+
response_mock = mocker.Mock()
192+
response_mock.status_code = 200
193+
response_mock.headers = {}
194+
response_mock.text = 'ok'
195+
get_mock = mocker.Mock()
196+
get_mock.return_value = response_mock
197+
mocker.patch('splitio.api.client.requests.Session.post', new=get_mock)
198+
199+
httpclient = client.HttpClientKerberos(sdk_url='https://sdk.com', events_url='https://events.com', authentication_scheme=AuthenticateScheme.KERBEROS_PROXY, authentication_params=[None, None])
194200
httpclient.set_telemetry_data("metric", mocker.Mock())
195-
response = httpclient.get('sdk', '/test1', 'some_api_key', {'param1': 123}, {'h1': 'abc'})
201+
202+
response = httpclient.post('events', 'test1', 'some_api_key', {'p1': 'a'}, {'param1': 123}, {'h1': 'abc'})
196203
call = mocker.call(
197-
'https://sdk.com/test1',
204+
'https://events.com/test1',
205+
json={'p1': 'a'},
198206
headers={'Authorization': 'Bearer some_api_key', 'h1': 'abc', 'Content-Type': 'application/json'},
199207
params={'param1': 123},
200208
timeout=None
201-
# auth=HTTPKerberosAuth(mutual_authentication=OPTIONAL)
202209
)
203210
assert response.status_code == 200
204211
assert response.body == 'ok'
205212
assert get_mock.mock_calls == [call]
206213
get_mock.reset_mock()
207214

215+
mocker.patch('splitio.api.client.requests.Session.get', new=get_mock)
208216
httpclient = client.HttpClientKerberos(sdk_url='https://sdk.com', authentication_scheme=AuthenticateScheme.KERBEROS_PROXY, authentication_params=['bilal', 'split'])
209217
httpclient.set_telemetry_data("metric", mocker.Mock())
210218
response = httpclient.get('sdk', '/test1', 'some_api_key', {'param1': 123}, {'h1': 'abc'})

0 commit comments

Comments
 (0)