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

Commit 3180bd7

Browse files
committed
Support sessions
1 parent ca570c9 commit 3180bd7

File tree

2 files changed

+13
-21
lines changed

2 files changed

+13
-21
lines changed

elemental/client.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ def __init__(self, server_ip, user=None, api_key=None):
3636
self.server_ip = server_ip
3737
self.user = user
3838
self.api_key = api_key
39+
self.session = requests.Session()
3940

4041
def generate_headers(self, url=""):
4142
# Generate headers according to how users create ElementalLive class
@@ -64,7 +65,7 @@ def generate_headers(self, url=""):
6465
def send_request(self, http_method, url, headers, body=""):
6566
# Send request according to different methods
6667
try:
67-
response = requests.request(
68+
response = self.session.request(
6869
method=http_method, url=url, data=body, headers=headers)
6970

7071
except requests.exceptions.RequestException as e:

elemental/client_test.py

Lines changed: 11 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -61,56 +61,47 @@ def test_genterate_header_without_authentication_should_not_contain_user():
6161
assert headers['Content-Type'] == 'application/xml'
6262

6363

64-
@mock.patch('requests.request')
65-
def test_send_request_should_call_request_as_expected(mock_request):
66-
mock_request.return_value = mock_response(status=200)
64+
def test_send_request_should_call_request_as_expected():
6765
client = ElementalLive(ELEMENTAL_ADDRESS, USER, API_KEY)
66+
client.session.request = mock.MagicMock(return_value=mock_response(status=200))
6867
client.send_request(
6968
'POST', f'{ELEMENTAL_ADDRESS}/live_events', HEADERS, REQUEST_BODY)
7069

71-
request_to_elemental = mock_request.call_args_list[0][1]
70+
request_to_elemental = client.session.request.call_args_list[0][1]
7271
assert request_to_elemental['url'] == f'{ELEMENTAL_ADDRESS}/live_events'
7372
assert request_to_elemental['method'] == 'POST'
7473
assert request_to_elemental['headers']['Accept'] == 'application/xml'
7574
assert request_to_elemental['headers']['Content-Type'] == 'application/xml'
7675

7776

78-
@mock.patch('requests.request')
79-
def test_send_request_should_return_response_on_correct_status_code(
80-
mock_request):
77+
def test_send_request_should_return_response_on_correct_status_code():
8178
response_from_elemental_api = file_fixture('success_response_for_'
8279
'create.xml')
83-
mock_request.return_value = mock_response(
84-
status=201, text=response_from_elemental_api)
85-
8680
client = ElementalLive(ELEMENTAL_ADDRESS, USER, API_KEY)
81+
client.session.request = mock.MagicMock(return_value=mock_response(
82+
status=201, text=response_from_elemental_api))
8783
response = client.send_request(
8884
'POST', f'{ELEMENTAL_ADDRESS}/live_events', HEADERS, REQUEST_BODY)
8985

9086
assert response.text == response_from_elemental_api
9187
assert response.status_code == 201
9288

9389

94-
@mock.patch('requests.request')
95-
def test_send_request_should_raise_InvalidRequest_on_RequestException(
96-
mock_request):
97-
mock_request.side_effect = requests.exceptions.RequestException()
98-
90+
def test_send_request_should_raise_InvalidRequest_on_RequestException():
9991
client = ElementalLive(ELEMENTAL_ADDRESS, USER, API_KEY)
92+
client.session.request = mock.MagicMock(side_effect=requests.exceptions.RequestException())
10093

10194
with pytest.raises(InvalidRequest):
10295
client.send_request(
10396
'POST', f'{ELEMENTAL_ADDRESS}/live_events', HEADERS, REQUEST_BODY)
10497

10598

106-
@mock.patch('requests.request')
107-
def test_send_request_should_raise_InvalidResponse_on_invalid_status_code(
108-
mock_request):
99+
def test_send_request_should_raise_InvalidResponse_on_invalid_status_code():
109100
response_from_elemental_api = file_fixture('fail_to_create_response.xml')
110-
mock_request.return_value = mock_response(
111-
status=404, text=response_from_elemental_api)
112101

113102
client = ElementalLive(ELEMENTAL_ADDRESS, USER, API_KEY)
103+
client.session.request = mock.MagicMock(return_value=mock_response(
104+
status=404, text=response_from_elemental_api))
114105

115106
with pytest.raises(InvalidResponse) as exc_info:
116107
client.send_request(

0 commit comments

Comments
 (0)