diff --git a/elemental/client.py b/elemental/client.py index b04267a..d8dd42d 100644 --- a/elemental/client.py +++ b/elemental/client.py @@ -140,6 +140,25 @@ def stop_event(self, event_id): self.send_request(http_method="POST", url=url, headers=headers, body=body) + def describe_event(self, event_id): + url = f'{self.server_ip}/live_events/{event_id}' + + headers = self.generate_headers(url) + + response = self.send_request(http_method="GET", url=url, + headers=headers) + # print(response.text) + event_info = {} + + destinations = ET.fromstring(response.text).iter('destination') + event_info['origin_url'] = next(destinations).find('uri').text + event_info['backup_url'] = next(destinations).find('uri').text + + status = ET.fromstring(response.text).find('status') + event_info['status'] = status.text + + return event_info + def find_devices_in_use(self): events_url = f'{self.server_ip}/live_events?filter=active' events_headers = self.generate_headers(events_url) @@ -173,7 +192,7 @@ def get_input_devices(self): devices_info, key=lambda d: int(d["id"])) return [dict(d) for d in devices_info] - def get_input_devices_by_id(self, input_device_id): + def get_input_device_by_id(self, input_device_id): devices_url = f'{self.server_ip}/devices/{input_device_id}' devices_headers = self.generate_headers(devices_url) devices = self.send_request( @@ -185,7 +204,7 @@ def get_input_devices_by_id(self, input_device_id): device_info.pop('@href') return dict(device_info) - def generate_preview(self, source_type, input_id): + def generate_preview(self, input_id): url = f'{self.server_ip}/inputs/generate_preview' headers = self.generate_headers(url) @@ -195,7 +214,7 @@ def generate_preview(self, source_type, input_id): # generate body data = f"input_key=0&live_event[inputs_attributes][0][source_type]=" \ - f"{source_type}&live_event[inputs_attributes][0]" \ + f"DeviceInput&live_event[inputs_attributes][0]" \ f"[device_input_attributes][sdi_settings_attributes]" \ f"[input_format]=Auto&live_event[inputs_attributes][0]" \ f"[device_input_attributes][device_id]={input_id}" @@ -204,10 +223,18 @@ def generate_preview(self, source_type, input_id): response_parse = ast.literal_eval(response.text) - if 'preview_image_id' not in response_parse: + if 'type' in response_parse and response_parse['type'] == 'error': raise ElementalException( f"Response: {response.status_code}\n{response.text}") else: preview_url = f'{self.server_ip}/images/thumbs/' \ f'p_{response_parse["preview_image_id"]}_job_0.jpg' return {'preview_url': preview_url} + + def event_can_delete(self, channel_id): + channel_info = self.describe_event(channel_id) + if channel_info['status'] in ('pending', 'running', + 'preprocessing', 'postprocessing'): + return {'deletable': False} + else: + return {'deletable': True} diff --git a/elemental/client_test.py b/elemental/client_test.py index 7abe60e..bd432ef 100644 --- a/elemental/client_test.py +++ b/elemental/client_test.py @@ -141,7 +141,17 @@ def test_create_event_should_call_send_request_as_expect_and_return_event_id(): 'mediastore_container_backup': 'https://hu5n3jjiyi2jev.data.medias' 'tore.us-east-1.amazonaws.com/backup', - 'channel': "1", 'device_name': "0"}) + 'input_device': {'id': '1', + 'name': None, + 'device_name': 'HD-SDI 1', + 'device_number': '0', + 'device_type': 'AJA', + 'description': + 'AJA Capture Card', + 'channel': '1', + 'channel_type': 'HD-SDI', + 'quad': 'false', + 'availability': False}}) response_from_elemental_api = client.send_request.call_args_list[0][1] assert response_from_elemental_api['http_method'] == 'POST' @@ -293,7 +303,7 @@ def test_get_input_devices_will_get_right_devices_info(): "quad": "false", "availability": True}] -def test_get_input_devices_by_id_will_call_send_request_as_expect(): +def test_get_input_device_by_id_will_call_send_request_as_expect(): client = ElementalLive(ELEMENTAL_ADDRESS, USER, API_KEY) client.generate_headers = mock.Mock() @@ -306,7 +316,7 @@ def test_get_input_devices_by_id_will_call_send_request_as_expect(): mock_response(status=200, text=file_fixture('sample_single_device.xml')) - client.get_input_devices_by_id('2') + client.get_input_device_by_id('2') client.send_request.\ assert_called_with(http_method="GET", @@ -314,7 +324,7 @@ def test_get_input_devices_by_id_will_call_send_request_as_expect(): headers=HEADERS) -def test_get_input_devices_by_id_will_get_right_devices_info(): +def test_get_input_device_by_id_will_get_right_devices_info(): client = ElementalLive(ELEMENTAL_ADDRESS, USER, API_KEY) client.generate_headers = mock.Mock() @@ -327,7 +337,7 @@ def test_get_input_devices_by_id_will_get_right_devices_info(): mock_response(status=200, text=file_fixture('sample_single_device.xml')) - res = client.get_input_devices_by_id('2') + res = client.get_input_device_by_id('2') assert res == {"id": "2", "name": None, "device_name": "HD-SDI 2", "device_number": "0", "device_type": "AJA", @@ -347,7 +357,7 @@ def test_get_preview_will_parse_response_json_as_expect(): status=200, text=file_fixture( 'success_response_for_generate_preview.json')) - response = client.generate_preview('DeviceInput', '2') + response = client.generate_preview('2') assert response == { 'preview_url': f'{ELEMENTAL_ADDRESS}/' @@ -367,7 +377,7 @@ def test_get_preview_will_raise_ElementalException_if_preview_unavaliable(): "Device already in use."})) with pytest.raises(ElementalException) as exc_info: - client.generate_preview('DeviceInput', '1') + client.generate_preview('1') respond_text = json.dumps({'type': 'error', 'message': 'Input is invalid. ' @@ -375,3 +385,72 @@ def test_get_preview_will_raise_ElementalException_if_preview_unavaliable(): assert str(exc_info.value).endswith( f"Response: 200\n" f"{respond_text}") + + +def test_describe_event_will_call_send_request_as_expect(): + client = ElementalLive(ELEMENTAL_ADDRESS, USER, API_KEY) + + client.generate_headers = mock.Mock() + client.generate_headers.return_value = HEADERS + + client.send_request = mock.Mock() + response_from_elemental_api = file_fixture('sample_event.xml') + client.send_request.return_value = mock_response( + status=200, text=response_from_elemental_api) + + event_id = 999 + client.describe_event(event_id) + client.send_request.assert_called_once_with( + http_method='GET', + url=f'{ELEMENTAL_ADDRESS}/live_events/{event_id}', + headers=HEADERS) + + +def test_describe_event_will_return_event_info_as_expect(): + client = ElementalLive(ELEMENTAL_ADDRESS, USER, API_KEY) + client.generate_headers = mock.Mock() + client.generate_headers.return_value = HEADERS + client.send_request = mock.Mock() + response_from_elemental_api = file_fixture('sample_event.xml') + client.send_request.return_value = mock_response( + status=200, text=response_from_elemental_api) + + event_id = '139' + event_info = client.describe_event(event_id) + assert event_info == {'origin_url': + 'https://vmjhch43nfkghi.data.mediastore.us-east-1.' + 'amazonaws.com/mortyg3b4/master/mortyg3b4.m3u8', + 'backup_url': + 'https://vmjhch43nfkghi.data.mediastore.us-east-1.' + 'amazonaws.com/mortyg3b4/backup/mortyg3b4.m3u8', + 'status': 'complete'} + + +def test_event_can_delete_will_return_False_if_pending(): + client = ElementalLive(ELEMENTAL_ADDRESS, USER, API_KEY) + + client.describe_event = mock.Mock() + client.describe_event.return_value = { + 'status': 'pending', + 'origin_url': 'fake_origin', + 'backup_url': 'fake_backup' + } + d = client.event_can_delete('123') + assert d == { + 'deletable': False + } + + +def test_event_can_delete_will_return_True_if_complete(): + client = ElementalLive(ELEMENTAL_ADDRESS, USER, API_KEY) + + client.describe_event = mock.Mock() + client.describe_event.return_value = { + 'status': 'complete', + 'origin_url': 'fake_origin', + 'backup_url': 'fake_backup' + } + d = client.event_can_delete('321') + assert d == { + 'deletable': True + } diff --git a/elemental/templates/qvbr_mediastore.xml b/elemental/templates/qvbr_mediastore.xml index d955ea2..91f68a2 100644 --- a/elemental/templates/qvbr_mediastore.xml +++ b/elemental/templates/qvbr_mediastore.xml @@ -1,6 +1,6 @@ - SuperBowl AVC Live (FLL - Dev) + {{channel_name}} true false @@ -18,11 +18,11 @@ embedded - AJA - {{ device_number }} - {{ channel }} - HD-SDI - HD-SDI 1 + {{ input_device["device_type"] }} + {{ input_device["device_number"] }} + {{ input_device["channel"] }} + {{ input_device["channel_type"] }} + {{ input_device["device_name"] }} Auto @@ -835,7 +835,7 @@ {{ password }} {{ username }} - {{ mediastore_container_master}} + {{ mediastore_container_master }} apple_live_group_settings diff --git a/elemental/test_templates/sample_event.xml b/elemental/test_templates/sample_event.xml new file mode 100644 index 0000000..542a472 --- /dev/null +++ b/elemental/test_templates/sample_event.xml @@ -0,0 +1,1645 @@ + + + 139 + morty demo channel + + false + true + false + + immediately + Auto + 1 + false + 199 + + false + false + 1 + false + + + pending + embedded + + 304 + AJA + 0 + 2 + HD-SDI + HD-SDI 2 + + 2 + + 305 + Auto + 0 + + + + follow + + 199 + 1 + + + true + 199 + 1 + 1 + + true + + + 184 + 1 + Embedded + + false + 184 + 1 + 1 + false + + + + + 199 + sdi://0.2 + + + + 0 + RAWVIDEO + 1920 + 1080 + 29.970 + 1:1 + + + + + 1 + PCM_S32LE + 2 + 2 + 48000 + + + 2 + PCM_S32LE + 2 + 2 + 48000 + + + 3 + PCM_S32LE + 2 + 2 + 48000 + + + 4 + PCM_S32LE + 2 + 2 + 48000 + + + 5 + PCM_S32LE + 2 + 2 + 48000 + + + 6 + PCM_S32LE + 2 + 2 + 48000 + + + 7 + PCM_S32LE + 2 + 2 + 48000 + + + 8 + PCM_S32LE + 2 + 2 + 48000 + + + + + 9 + SCTE-35 + + + 10 + DVB-Teletext + + + 11 + KLV (asynchronous) + + + + + 0 + false + + 149 + false + systemclock + + + 1 + elemental5 + + 182 + 50 + false + + + fll_dev_1 + + 87 + 0 + + 499 + http://10.25.68.173:8080/signal + + + + 10000 + 182 + 000000 + color + 1000 + + esam + 0 + false + false + false + 0 + true + true + + switch_input + input_clock + 60 + none + false + false + 2019-07-31 15:04:45 -0400 + complete + 34.949999999999996 + 0 + 0 + 0 + 2019-07-31 15:05:55 -0400 + 2019-07-31 15:07:32 -0400 + 79 + + + 11 + 2019-07-31T15:07:16-04:00 + Final timecode: 19:07:15;14 + + + 10 + 2019-07-31T15:05:58-04:00 + Initial timecode: 19:05:58;17 + + + 42 + 2019-07-31T15:05:58-04:00 + [Profiles and Levels] {"stream_assembly_0":{"profile":"high","level":"4"},"stream_assembly_1":{"profile":"main","level":"1.3"},"stream_assembly_2":{"profile":"main","level":"2.1"},"stream_assembly_3":{"profile":"main","level":"3"},"stream_assembly_4":{"profile":"high","level":"4"},"stream_assembly_5":{"profile":"high","level":"4"}} + + + high + 4 + + + main + 1.3 + + + main + 2.1 + + + main + 3 + + + high + 4 + + + high + 4 + + + + + + 884 + + stream_assembly_0 + + None + true + true + gpu + + false + 540 + 1035 + true + None + 100 + false + true + false + 960 + + medium + + + 3600000 + true + true + true + false + 1001 + false + 30000 + true + 1 + false + 3 + 3.0 + seconds + 959 + false + high + 1800000 + + + 0 + 0 + + + 3 + + true + + 1 + false + + 7 + false + false + transition_detection + false + 1 + false + + true + 0 + None + true + 4 + High + QVBR + progressive + + 0 + + h.264 + + + interpolate + Deinterlace + false + 1025 + + + 0 + Conserve + 310 + + + 2 + + + 16 + 543 + top_left + fll - dev1 - + + + + + 0 + true + true + 1041 + + + 1 + + false + + false + 96000 + 2_0 + 1072 + false + false + 48000 + LC + CBR + + aac + Audio Selector 1 + + + Embedded + 730 + false + + + 1 + Caption Selector 1 + + + + 885 + + stream_assembly_1 + + None + true + true + cpu_small_frames + + false + 224 + 1036 + true + None + 100 + false + true + false + 400 + + medium + + + 500000 + true + true + true + false + 1001 + false + 30000 + true + 1 + false + 3 + 3.0 + seconds + 960 + false + high + 250000 + + + 0 + 0 + + + 3 + + true + + 1 + false + + 7 + false + false + transition_detection + false + 1 + false + + true + 0 + None + true + Main + QVBR + progressive + + 0 + + h.264 + + + interpolate + Deinterlace + false + 1026 + + + 16 + 544 + top_left + fll - dev1 - + + + + + 0 + true + true + 1042 + + + 1 + + false + + false + 96000 + 2_0 + 1073 + false + false + 48000 + LC + CBR + + aac + Audio Selector 1 + + + Embedded + 731 + false + + + 1 + Caption Selector 1 + + + + 886 + + stream_assembly_2 + + None + true + true + cpu_small_frames + + false + 288 + 1037 + true + None + 100 + false + true + false + 512 + + medium + + + 1000000 + true + true + true + false + 1001 + false + 30000 + true + 1 + false + 3 + 3.0 + seconds + 961 + false + high + 500000 + + + 0 + 0 + + + 3 + + true + + 1 + false + + 7 + false + false + transition_detection + false + 1 + false + + true + 0 + None + true + Main + QVBR + progressive + + 0 + + h.264 + + + interpolate + Deinterlace + false + 1027 + + + 16 + 545 + top_left + fll - dev1 - + + + + + 0 + true + true + 1043 + + + 1 + + false + + false + 96000 + 2_0 + 1074 + false + false + 48000 + LC + CBR + + aac + Audio Selector 1 + + + Embedded + 732 + false + + + 1 + Caption Selector 1 + + + + 887 + + stream_assembly_3 + + None + true + true + cpu_small_frames + + false + 360 + 1038 + true + None + 100 + false + true + false + 640 + + medium + + + 1800000 + true + true + true + false + 1001 + false + 30000 + true + 1 + false + 3 + 3.0 + seconds + 962 + false + high + 900000 + + + 0 + 0 + + + 3 + + true + + 1 + false + + 7 + false + false + transition_detection + false + 1 + false + + true + 0 + None + true + Main + QVBR + progressive + + 0 + + h.264 + + + interpolate + Deinterlace + false + 1028 + + + 16 + 546 + top_left + fll - dev1 - + + + + + 0 + true + true + 1044 + + + 1 + + false + + false + 96000 + 2_0 + 1075 + false + false + 48000 + LC + CBR + + aac + Audio Selector 1 + + + Embedded + 733 + false + + + 1 + Caption Selector 1 + + + + 888 + + stream_assembly_4 + + None + true + true + gpu + + false + 720 + 1039 + true + None + 100 + false + true + false + 1280 + + medium + + + 6000000 + true + true + true + false + 1001 + false + 30000 + true + 1 + false + 3 + 3.0 + seconds + 963 + false + high + 3000000 + + + 0 + 0 + + spatial + 3 + + true + + 1 + false + + 7 + false + false + transition_detection + false + 1 + false + + true + -2 + None + true + 4 + High + QVBR + progressive + + 0 + + h.264 + + + interpolate + Deinterlace + false + 1029 + + + 0 + Conserve + 311 + + + 2 + + + 16 + 547 + top_left + fll - dev1 - + + + + + 0 + true + true + 1045 + + + 1 + + false + + false + 96000 + 2_0 + 1076 + false + false + 48000 + LC + CBR + + aac + Audio Selector 1 + + + Embedded + 734 + false + + + 1 + Caption Selector 1 + + + + 889 + + stream_assembly_5 + + None + true + true + gpu + + false + 720 + 1040 + true + None + 100 + false + true + false + 1280 + + high + + + 12000000 + true + true + true + false + 1001 + false + 60000 + true + 1 + false + 3 + 3.0 + seconds + 964 + false + high + 6000000 + + + 0 + 0 + + spatial + 3 + + true + + 1 + false + + 8 + false + false + transition_detection + false + 1 + false + + true + -2 + None + true + 4 + High + QVBR + progressive + + 0 + + h.264 + + + interpolate + Deinterlace + false + 1030 + + + 0 + Conserve + 312 + + + 2 + + + 16 + 548 + top_left + fll - dev1 - + + + + + 0 + true + true + 1046 + + + 1 + + false + + false + 96000 + 2_0 + 1077 + false + false + 48000 + LC + CBR + + aac + Audio Selector 1 + + + Embedded + 735 + false + + + 1 + Caption Selector 1 + + + + avc_east + 406 + + 1 + + elemental-scte35 + + + omit + AWS Elemental MediaStore + false + false + 2 + false + false + 300 + true + false + true + 392 + true + 10 + true + 11 + + + false + 6 + 10 + emit_output + 600 + 15 + + 6 + 10 + PRIV + 10 + + + false + false + false + + 500 + FAKE_PASSWORD + FAKE_USERNAME + https://vmjhch43nfkghi.data.mediastore.us-east-1.amazonaws.com/mortyg3b4/master/mortyg3b4.m3u8 + + + apple_live_group_settings + + false + + m3u8 + mediastoressl://vmjhch43nfkghi.data.mediastore.us-east-1.amazonaws.com/mortyg3b4/master/mortyg3b4.m3u8_960x540_2997.m3u8 + 1436 + false + true + false + _960x540_2997 + false + 1 + + true + false + false + false + + program_audio + program_audio + 1370 + false + _seg + TS + + + 4 + 1417 + 0 + true + + 0 + 1 + + 482-498 + 480 + 500 + 502 + 481 + 481 + + stream_assembly_0 + m3u8 + + + false + + m3u8 + mediastoressl://vmjhch43nfkghi.data.mediastore.us-east-1.amazonaws.com/mortyg3b4/master/mortyg3b4.m3u8_400x224_2997.m3u8 + 1437 + false + false + false + _400x224_2997 + false + 2 + + true + false + false + false + + program_audio + program_audio + 1371 + false + _seg + TS + + + 4 + 1418 + 0 + true + + 0 + 1 + + 482-498 + 480 + 500 + 481 + 481 + + stream_assembly_1 + m3u8 + + + false + + m3u8 + mediastoressl://vmjhch43nfkghi.data.mediastore.us-east-1.amazonaws.com/mortyg3b4/master/mortyg3b4.m3u8_512x288_2997.m3u8 + 1438 + false + false + false + _512x288_2997 + false + 3 + + true + false + false + false + + program_audio + program_audio + 1372 + false + _seg + TS + + + 4 + 1419 + 0 + true + + 0 + 1 + + 482-498 + 480 + 500 + 481 + 481 + + stream_assembly_2 + m3u8 + + + false + + m3u8 + mediastoressl://vmjhch43nfkghi.data.mediastore.us-east-1.amazonaws.com/mortyg3b4/master/mortyg3b4.m3u8_640x360_2997.m3u8 + 1439 + false + false + false + _640x360_2997 + false + 4 + + true + false + false + false + + program_audio + program_audio + 1373 + false + _seg + TS + + + 4 + 1420 + 0 + true + + 0 + 1 + + 482-498 + 480 + 500 + 481 + 481 + + stream_assembly_3 + m3u8 + + + false + + m3u8 + mediastoressl://vmjhch43nfkghi.data.mediastore.us-east-1.amazonaws.com/mortyg3b4/master/mortyg3b4.m3u8_1280x720_2997.m3u8 + 1440 + false + false + false + _1280x720_2997 + false + 5 + + true + false + false + false + + program_audio + program_audio + 1374 + false + _seg + TS + + + 4 + 1421 + 0 + true + + 0 + 1 + + 482-498 + 480 + 500 + 481 + 481 + + stream_assembly_4 + m3u8 + + + false + + m3u8 + mediastoressl://vmjhch43nfkghi.data.mediastore.us-east-1.amazonaws.com/mortyg3b4/master/mortyg3b4.m3u8_1280x720_5994.m3u8 + 1441 + false + false + false + _1280x720_5994 + false + 6 + + true + false + false + false + + program_audio + program_audio + 1375 + false + _seg + TS + + + 4 + 1422 + 0 + true + + 0 + 1 + + 482-498 + 480 + 500 + 481 + 481 + + stream_assembly_5 + m3u8 + + + + avc_west + 407 + + 2 + + elemental-scte35 + + + omit + AWS Elemental MediaStore + false + false + 2 + false + false + 300 + true + false + true + 393 + true + 10 + true + 21 + + + false + 0 + 10 + emit_output + 600 + 15 + + 6 + + PRIV + 10 + + + false + false + false + + 501 + FAKE_PASSWORD + FAKE_USERNAME + https://vmjhch43nfkghi.data.mediastore.us-east-1.amazonaws.com/mortyg3b4/backup/mortyg3b4.m3u8 + + + apple_live_group_settings + + false + + m3u8 + mediastoressl://vmjhch43nfkghi.data.mediastore.us-east-1.amazonaws.com/mortyg3b4/backup/mortyg3b4.m3u8_960x540_2997.m3u8 + 1442 + false + true + false + _960x540_2997 + false + 1 + + true + false + false + false + + program_audio + program_audio + 1376 + false + _seg + TS + + + 4 + 1423 + 0 + true + + 0 + 1 + + 482-498 + 480 + 500 + 502 + 481 + 481 + + stream_assembly_0 + m3u8 + + + false + + m3u8 + mediastoressl://vmjhch43nfkghi.data.mediastore.us-east-1.amazonaws.com/mortyg3b4/backup/mortyg3b4.m3u8_400x224_2997.m3u8 + 1443 + false + true + false + _400x224_2997 + false + 2 + + true + false + false + false + + program_audio + program_audio + 1377 + false + _seg + TS + + + 4 + 1424 + 0 + true + + 0 + 1 + + 482-498 + 480 + 500 + 502 + 481 + 481 + + stream_assembly_1 + m3u8 + + + false + + m3u8 + mediastoressl://vmjhch43nfkghi.data.mediastore.us-east-1.amazonaws.com/mortyg3b4/backup/mortyg3b4.m3u8_512x288_2997.m3u8 + 1444 + false + true + false + _512x288_2997 + false + 3 + + true + false + false + false + + program_audio + program_audio + 1378 + false + _seg + TS + + + 4 + 1425 + 0 + true + + 0 + 1 + + 482-498 + 480 + 500 + 502 + 481 + 481 + + stream_assembly_2 + m3u8 + + + false + + m3u8 + mediastoressl://vmjhch43nfkghi.data.mediastore.us-east-1.amazonaws.com/mortyg3b4/backup/mortyg3b4.m3u8_640x360_2997.m3u8 + 1445 + false + true + false + _640x360_2997 + false + 4 + + true + false + false + false + + program_audio + program_audio + 1379 + false + _seg + TS + + + 4 + 1426 + 0 + true + + 0 + 1 + + 482-498 + 480 + 500 + 502 + 481 + 481 + + stream_assembly_3 + m3u8 + + + false + + m3u8 + mediastoressl://vmjhch43nfkghi.data.mediastore.us-east-1.amazonaws.com/mortyg3b4/backup/mortyg3b4.m3u8_1280x720_2997.m3u8 + 1446 + false + true + false + _1280x720_2997 + false + 5 + + true + false + false + false + + program_audio + program_audio + 1380 + false + _seg + TS + + + 4 + 1427 + 0 + true + + 0 + 1 + + 482-498 + 480 + 500 + 502 + 481 + 481 + + stream_assembly_4 + m3u8 + + + false + + m3u8 + mediastoressl://vmjhch43nfkghi.data.mediastore.us-east-1.amazonaws.com/mortyg3b4/backup/mortyg3b4.m3u8_1280x720_5994.m3u8 + 1447 + false + true + false + _1280x720_5994 + false + 6 + + true + false + false + false + + program_audio + program_audio + 1381 + false + _seg + TS + + + 4 + 1428 + 0 + true + + 0 + 1 + + 482-498 + 480 + 500 + 502 + 481 + 481 + + stream_assembly_5 + m3u8 + + + diff --git a/elemental/test_templates/success_response_for_create.xml b/elemental/test_templates/success_response_for_create.xml index 6e88c75..b4442b1 100644 --- a/elemental/test_templates/success_response_for_create.xml +++ b/elemental/test_templates/success_response_for_create.xml @@ -1235,8 +1235,8 @@ false 335 - ZF/yjHCSvgCkmM69hf6NJKOgm0Hp61xBVZaT8I6I - AKIAX3GU2745IRM7YRTZ + FAKE_PASSWORD + FAKE_USERNAME https://hu5n3jjiyi2jev.data.mediastore.us-east-1.amazonaws.com/backup diff --git a/elemental/test_templates/success_response_for_start.xml b/elemental/test_templates/success_response_for_start.xml index f23f309..e4982bb 100644 --- a/elemental/test_templates/success_response_for_start.xml +++ b/elemental/test_templates/success_response_for_start.xml @@ -1235,8 +1235,8 @@ false 329 - ZF/yjHCSvgCkmM69hf6NJKOgm0Hp61xBVZaT8I6I - AKIAX3GU2745IRM7YRTZ + FAKE_PASSWORD + FAKE_USER https://hu5n3jjiyi2jev.data.mediastore.us-east-1.amazonaws.com/backup diff --git a/elemental/test_templates/success_response_for_stop.xml b/elemental/test_templates/success_response_for_stop.xml index b8fea33..d630e9e 100644 --- a/elemental/test_templates/success_response_for_stop.xml +++ b/elemental/test_templates/success_response_for_stop.xml @@ -1237,8 +1237,8 @@ false 329 - ZF/yjHCSvgCkmM69hf6NJKOgm0Hp61xBVZaT8I6I - AKIAX3GU2745IRM7YRTZ + FAKE_PASSWORD + FAKE_USERNAME https://hu5n3jjiyi2jev.data.mediastore.us-east-1.amazonaws.com/backup diff --git a/setup.py b/setup.py index e63067f..152a003 100644 --- a/setup.py +++ b/setup.py @@ -7,11 +7,12 @@ name='python-elemental', author='CBS Interactive', author_email='video-processing-team@cbsinteractive.com', - version='0.2', + version='0.4', include_patckage_data=True, url='https://github.com/cbsinteractive/elemental.git', license='MIT', long_description=open('README.md').read(), install_requires=requirements, packages=setuptools.find_packages(), + package_data={'elemental': ['templates/*']} )