def test_parse_project(self): media = { 'identifier': 'obs', 'version': '{latest}', 'media': [{ 'identifier': 'pdf', 'version': 1, 'contributor': ['First Contributor', 'Second Contributor'], 'url': 'https://cdn.door43.org/obs/txt/1/hmr/obs-hmr-v4_1.pdf' }] } content_version = '4.1' chapters = {} output = _parse_project(media, content_version, chapters) expected = [{ 'build_rules': ['signing.sign_given_url'], 'contributor': ['First Contributor', 'Second Contributor'], 'format': '', 'modified': '', 'signature': '', 'size': 0, 'source_version': '4.1', 'url': 'https://cdn.door43.org/obs/txt/1/hmr/obs-hmr-v4_1.pdf', 'version': '1' }] assert_object_equals(self, expected, output)
def test_parse_obs_with_chapters(self): media_yaml = '''projects: - identifier: "obs" version: "4.1" media: - identifier: "mp3" version: "1" contributor: [] quality: - "128kbps" chapter_url: "https://cdn.door43.org/ylb/obs/v4.1/{quality}/ylb_obs_{chapter}_{quality}.mp3" url: "https://cdn.door43.org/ylb/obs/v4.1/{quality}/ylb_obs_{quality}.zip"''' media = yaml.load(media_yaml) content_version = '4.1' project_chapters = {'obs': [1]} resource_formats, project_formats = parse_media( media, content_version, project_chapters) expected = { 'resource_formats': [], 'project_formats': { 'obs': [{ 'build_rules': ['signing.sign_given_url'], 'contributor': [], "chapters": [{ "url": "https://cdn.door43.org/ylb/obs/v4.1/128kbps/ylb_obs_1_128kbps.mp3", "modified": "", "length": 0, "build_rules": ["signing.sign_given_url"], "signature": "", "identifier": 1, "size": 0 }], 'format': '', 'modified': '', 'signature': '', 'size': 0, 'source_version': '4.1', 'quality': '128kbps', 'url': 'https://cdn.door43.org/ylb/obs/v4.1/128kbps/ylb_obs_128kbps.zip', 'version': '1' }] } } assert_object_equals(self, expected['resource_formats'], resource_formats) assert_object_equals(self, expected['project_formats'], project_formats)
def test_parse_complete(self): media_yaml = '''resource: version: "{latest}" media: - identifier: "pdf" version: "{latest}" contributor: [] url: "https://cdn.door43.org/en/obs/v{version}/media/{identifier}/obs.pdf" projects: - identifier: "obs" version: "{latest}" media: - identifier: "pdf" version: "1" contributor: [] url: "https://cdn.door43.org/obs/txt/1/hmr/obs-hmr-v4_1.pdf"''' media = yaml.load(media_yaml) content_version = '4.1' project_chapters = {} resource_formats, project_formats = parse_media( media, content_version, project_chapters) expected = { 'resource_formats': [{ 'build_rules': ['signing.sign_given_url'], 'contributor': [], 'format': '', 'modified': '', 'signature': '', 'size': 0, 'source_version': '4.1', 'url': 'https://cdn.door43.org/en/obs/v4.1/media/pdf/obs.pdf', 'version': '4.1' }], 'project_formats': { 'obs': [{ 'build_rules': ['signing.sign_given_url'], 'contributor': [], 'format': '', 'modified': '', 'signature': '', 'size': 0, 'source_version': '4.1', 'url': 'https://cdn.door43.org/obs/txt/1/hmr/obs-hmr-v4_1.pdf', 'version': '1' }] } } assert_object_equals(self, expected['resource_formats'], resource_formats) assert_object_equals(self, expected['project_formats'], project_formats)
def test_strip_build_rules(self, mock_reporter): state = self.make_handler_instance('valid.json') obj = { 'build_rules': [], 'id': 'obj', 'projects': [{ 'build_rules': [], 'id': 'proj', 'formats': [{ 'build_rules': [], 'id': 'fmt', 'chapters': [{ 'id': 'chp', 'build_rules': [] }] }] }], 'formats': [{ 'build_rules': [], 'id': 'fmt' }] } expected = { 'id': 'obj', 'projects': [{ 'id': 'proj', 'formats': [{ 'id': 'fmt', 'chapters': [{ 'id': 'chp' }] }] }], 'formats': [{ 'id': 'fmt' }] } state['handler']._strip_build_rules(obj) assert_object_equals(self, expected, obj)
def test_make_signing_function_status_with_errors(self): handler = StatusHandler(event={}, context=None) errors = { 'd43-catalog_signing': [ { 'message': 'first error', 'timestamp': '2017-10-20T18:37:23.059571+00:00' }, { 'message': 'second error', 'timestamp': '2017-11-20T18:37:23.059571+00:00' } ] } response = handler.make_function_status('signing', errors) self.assertEqual(response['status'], 'complete') self.assertEqual(response['name'], 'signing') self.assertEqual(response['lambda'], 'd43-catalog_signing') assert_object_equals(self, response['errors'], errors['d43-catalog_signing'])
def test_parse_chapters_with_quality(self): media = { 'identifier': 'obs', 'version': '{latest}', 'media': [{ 'identifier': 'mp4', 'version': 1, 'contributor': ['First Contributor', 'Second Contributor'], 'quality': ['720p', '360p'], 'url': 'https://cdn.door43.org/obs/txt/1/hmr/{quality}/obs-hmr-v4_1.mp4', 'chapter_url': 'https://cdn.door43.org/obs/txt/v{version}/hmr/media/{identifier}/{quality}/obs_{chapter}.mp4' }] } content_version = '4.1' chapters = ['01', '02'] output = _parse_project(media, content_version, chapters) expected = [{ 'build_rules': ['signing.sign_given_url'], 'contributor': ['First Contributor', 'Second Contributor'], 'format': '', 'modified': '', 'signature': '', 'size': 0, 'quality': '720p', 'source_version': '4.1', 'url': 'https://cdn.door43.org/obs/txt/1/hmr/720p/obs-hmr-v4_1.mp4', 'version': '1', 'chapters': [{ "build_rules": ['signing.sign_given_url'], "identifier": "01", "length": 0, "modified": "", "signature": "", "size": 0, "url": "https://cdn.door43.org/obs/txt/v1/hmr/media/mp4/720p/obs_01.mp4" }, { "build_rules": ['signing.sign_given_url'], "identifier": "02", "length": 0, "modified": "", "signature": "", "size": 0, "url": "https://cdn.door43.org/obs/txt/v1/hmr/media/mp4/720p/obs_02.mp4" }] }, { 'build_rules': ['signing.sign_given_url'], 'contributor': ['First Contributor', 'Second Contributor'], 'format': '', 'modified': '', 'signature': '', 'size': 0, 'quality': '360p', 'source_version': '4.1', 'url': 'https://cdn.door43.org/obs/txt/1/hmr/360p/obs-hmr-v4_1.mp4', 'version': '1', 'chapters': [{ "build_rules": ['signing.sign_given_url'], "identifier": "01", "length": 0, "modified": "", "signature": "", "size": 0, "url": "https://cdn.door43.org/obs/txt/v1/hmr/media/mp4/360p/obs_01.mp4" }, { "build_rules": ['signing.sign_given_url'], "identifier": "02", "length": 0, "modified": "", "signature": "", "size": 0, "url": "https://cdn.door43.org/obs/txt/v1/hmr/media/mp4/360p/obs_02.mp4" }] }] assert_object_equals(self, expected, output)