Skip to content
This repository was archived by the owner on Nov 17, 2022. It is now read-only.

Commit afa206a

Browse files
Merge branch 'master' into support-timeout
2 parents d5ad6a5 + e213f48 commit afa206a

File tree

2 files changed

+15
-21
lines changed

2 files changed

+15
-21
lines changed

elemental/client.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ def __init__(self, server_ip, user=None, api_key=None, timeout=5):
3737
self.user = user
3838
self.api_key = api_key
3939
self.timeout = timeout
40+
self.session = requests.Session()
4041

4142
def generate_headers(self, url=""):
4243
# Generate headers according to how users create ElementalLive class
@@ -66,7 +67,7 @@ def send_request(self, http_method, url, headers, body="", timeout=None):
6667
# Send request according to different methods
6768
try:
6869
timeout = timeout or self.timeout
69-
response = requests.request(
70+
response = self.session.request(
7071
method=http_method, url=url, data=body, headers=headers, timeout=timeout)
7172

7273
except requests.exceptions.RequestException as e:

elemental/client_test.py

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -62,57 +62,50 @@ def test_genterate_header_without_authentication_should_not_contain_user():
6262
assert headers['Content-Type'] == 'application/xml'
6363

6464

65-
@mock.patch('requests.request')
66-
def test_send_request_should_call_request_as_expected(mock_request):
67-
mock_request.return_value = mock_response(status=200)
65+
def test_send_request_should_call_request_as_expected():
6866
client = ElementalLive(ELEMENTAL_ADDRESS, USER, API_KEY)
67+
client.session.request = mock.MagicMock(
68+
return_value=mock_response(status=200))
6969
client.send_request(
7070
'POST', f'{ELEMENTAL_ADDRESS}/live_events', HEADERS, REQUEST_BODY, timeout=TIMEOUT)
7171

72-
request_to_elemental = mock_request.call_args_list[0][1]
72+
request_to_elemental = client.session.request.call_args_list[0][1]
7373
assert request_to_elemental['url'] == f'{ELEMENTAL_ADDRESS}/live_events'
7474
assert request_to_elemental['method'] == 'POST'
7575
assert request_to_elemental['headers']['Accept'] == 'application/xml'
7676
assert request_to_elemental['headers']['Content-Type'] == 'application/xml'
7777
assert request_to_elemental['timeout'] == TIMEOUT
7878

7979

80-
@mock.patch('requests.request')
81-
def test_send_request_should_return_response_on_correct_status_code(
82-
mock_request):
80+
def test_send_request_should_return_response_on_correct_status_code():
8381
response_from_elemental_api = file_fixture('success_response_for_'
8482
'create.xml')
85-
mock_request.return_value = mock_response(
86-
status=201, text=response_from_elemental_api)
87-
8883
client = ElementalLive(ELEMENTAL_ADDRESS, USER, API_KEY)
84+
client.session.request = mock.MagicMock(return_value=mock_response(
85+
status=201, text=response_from_elemental_api))
8986
response = client.send_request(
9087
'POST', f'{ELEMENTAL_ADDRESS}/live_events', HEADERS, REQUEST_BODY)
9188

9289
assert response.text == response_from_elemental_api
9390
assert response.status_code == 201
9491

9592

96-
@mock.patch('requests.request')
97-
def test_send_request_should_raise_InvalidRequest_on_RequestException(
98-
mock_request):
99-
mock_request.side_effect = requests.exceptions.RequestException()
100-
93+
def test_send_request_should_raise_InvalidRequest_on_RequestException():
10194
client = ElementalLive(ELEMENTAL_ADDRESS, USER, API_KEY)
95+
client.session.request = mock.MagicMock(
96+
side_effect=requests.exceptions.RequestException())
10297

10398
with pytest.raises(InvalidRequest):
10499
client.send_request(
105100
'POST', f'{ELEMENTAL_ADDRESS}/live_events', HEADERS, REQUEST_BODY)
106101

107102

108-
@mock.patch('requests.request')
109-
def test_send_request_should_raise_InvalidResponse_on_invalid_status_code(
110-
mock_request):
103+
def test_send_request_should_raise_InvalidResponse_on_invalid_status_code():
111104
response_from_elemental_api = file_fixture('fail_to_create_response.xml')
112-
mock_request.return_value = mock_response(
113-
status=404, text=response_from_elemental_api)
114105

115106
client = ElementalLive(ELEMENTAL_ADDRESS, USER, API_KEY)
107+
client.session.request = mock.MagicMock(return_value=mock_response(
108+
status=404, text=response_from_elemental_api))
116109

117110
with pytest.raises(InvalidResponse) as exc_info:
118111
client.send_request(

0 commit comments

Comments
 (0)