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

Commit 710b0c8

Browse files
Get event raw XML (#85)
1 parent 14e1da3 commit 710b0c8

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed

elemental/client.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,13 @@ def describe_event(self, event_id: str, timeout: Optional[int] = None) -> EventS
194194
backup_url=event_info.get('backup_url')
195195
)
196196

197+
def get_event_xml(self, event_id: str, timeout: Optional[int] = None) -> str:
198+
url = f'{self.server_url}/live_events/{event_id}'
199+
headers = self.generate_headers(url)
200+
response = self.send_request(http_method="GET", url=url,
201+
headers=headers, timeout=timeout)
202+
return response.text
203+
197204
def get_event_status(self, event_id: str, timeout: Optional[int] = None) -> str:
198205
url = f'{self.server_url}/live_events/{event_id}/status'
199206
headers = self.generate_headers(url)

tests/client_test.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -542,6 +542,30 @@ def test_get_event_status():
542542
headers={'Accept': 'application/xml', 'Content-Type': 'application/xml'}, timeout=None)
543543

544544

545+
def test_get_event_xml():
546+
client = ElementalLive(ELEMENTAL_ADDRESS, USER, API_KEY)
547+
client.generate_headers = mock.Mock()
548+
client.generate_headers.return_value = {'Accept': 'application/xml', 'Content-Type': 'application/xml'}
549+
550+
client.send_request = mock.Mock()
551+
response_from_elemental_api = """<?xml version="1.0" encoding="UTF-8"?>
552+
<live_event href="/live_events/18">
553+
<node>ctcsdprdel5</node>
554+
</live_event>
555+
"""
556+
client.send_request.return_value = mock_response(
557+
status=200, text=response_from_elemental_api)
558+
event_id = '18'
559+
560+
event_xml = client.get_event_xml(event_id)
561+
562+
assert event_xml == response_from_elemental_api
563+
client.send_request.assert_called_once_with(
564+
http_method='GET',
565+
url=f'{ELEMENTAL_ADDRESS}/live_events/{event_id}',
566+
headers={'Accept': 'application/xml', 'Content-Type': 'application/xml'}, timeout=None)
567+
568+
545569
def test_get_event_status_missing_status_in_elemental_response():
546570
client = ElementalLive(ELEMENTAL_ADDRESS, USER, API_KEY)
547571

0 commit comments

Comments
 (0)