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

Commit 7e52a25

Browse files
author
Allison Deal
authored
client: add update_event method (#73)
1 parent ebed649 commit 7e52a25

File tree

2 files changed

+51
-0
lines changed

2 files changed

+51
-0
lines changed

elemental/client.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,15 @@ def create_event(self, event_xml: str, timeout: Optional[int] = None) -> EventId
103103

104104
return {'id': event_id}
105105

106+
def update_event(self, event_id: str, event_xml: str, restart: Optional[bool] = False,
107+
timeout: Optional[int] = None) -> None:
108+
url = f'{self.server_url}/live_events/{event_id}'
109+
if restart:
110+
url += '?unlocked=1'
111+
headers = self.generate_headers(url)
112+
self.send_request(
113+
http_method="PUT", url=url, headers=headers, body=event_xml, timeout=timeout)
114+
106115
def delete_event(self, event_id: str, timeout: Optional[int] = None) -> None:
107116
url = f'{self.server_url}/live_events/{event_id}'
108117
headers = self.generate_headers(url)

tests/client_test.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,48 @@ def test_create_event():
141141
assert event_id == {'id': '53'}
142142

143143

144+
def test_update_event():
145+
client = ElementalLive(ELEMENTAL_ADDRESS, USER, API_KEY)
146+
client.generate_headers = mock.Mock()
147+
client.generate_headers.return_value = HEADERS
148+
client.send_request = mock.Mock()
149+
client.send_request.return_value = mock_response(
150+
status=200)
151+
152+
client.update_event('53', '<updated-event />')
153+
154+
client.send_request.assert_called_once_with(
155+
http_method='PUT', url='FAKE_ADDRESS.com/live_events/53',
156+
headers={'Accept': 'application/xml',
157+
'Content-Type': 'application/xml'},
158+
body='<updated-event />', timeout=None)
159+
send_mock_call = client.send_request.call_args_list[0][1]
160+
assert send_mock_call['http_method'] == 'PUT'
161+
assert send_mock_call['url'] == f'{ELEMENTAL_ADDRESS}/live_events/53'
162+
assert send_mock_call['headers'] == HEADERS
163+
164+
165+
def test_update_event_with_restart():
166+
client = ElementalLive(ELEMENTAL_ADDRESS, USER, API_KEY)
167+
client.generate_headers = mock.Mock()
168+
client.generate_headers.return_value = HEADERS
169+
client.send_request = mock.Mock()
170+
client.send_request.return_value = mock_response(
171+
status=200)
172+
173+
client.update_event('53', '<updated-event />', restart=True)
174+
175+
client.send_request.assert_called_once_with(
176+
http_method='PUT', url='FAKE_ADDRESS.com/live_events/53?unlocked=1',
177+
headers={'Accept': 'application/xml',
178+
'Content-Type': 'application/xml'},
179+
body='<updated-event />', timeout=None)
180+
send_mock_call = client.send_request.call_args_list[0][1]
181+
assert send_mock_call['http_method'] == 'PUT'
182+
assert send_mock_call['url'] == f'{ELEMENTAL_ADDRESS}/live_events/53?unlocked=1'
183+
assert send_mock_call['headers'] == HEADERS
184+
185+
144186
def test_delete_event_should_call_send_request_as_expect():
145187
client = ElementalLive(ELEMENTAL_ADDRESS, USER, API_KEY)
146188

0 commit comments

Comments
 (0)