diff --git a/tests/DASH-IF-manifests.json b/tests/DASH-IF-manifests.json index 8afa4c5..11c91db 100644 --- a/tests/DASH-IF-manifests.json +++ b/tests/DASH-IF-manifests.json @@ -49,8 +49,8 @@ {"url":"https://media.axprod.net/TestVectors/v7-MultiDRM-MultiKey-MultiPeriod/Manifest_ClearKey.mpd"}, {"url":"https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_AudioOnly_ClearKey.mpd"}, {"url":"https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p_ClearKey.mpd"}, - {"url":"https://raw.githubusercontent.com/Dash-Industry-Forum/SAND-Test-Vectors/master/mpd/dash-if/WSSReporting-OK-MultiRes.mpd"}, - {"url":"https://raw.githubusercontent.com/Dash-Industry-Forum/SAND-Test-Vectors/master/mpd/dash-if/HTTPSReporting-Conf-OK-MultiRes.mpd"}, + {"url":"https://raw.githubusercontent.com/Dash-Industry-Forum/SAND-Test-Vectors/master/mpd/dash-if/WSSReporting-OK-MultiRes.mpd", "status":"fails"}, + {"url":"https://raw.githubusercontent.com/Dash-Industry-Forum/SAND-Test-Vectors/master/mpd/dash-if/HTTPSReporting-Conf-OK-MultiRes.mpd", "status":"fails"}, {"url":"https://dash.akamaized.net/dash264/TestCasesNegative/2/1.mpd"}, {"url":"https://dash.akamaized.net/dash264/TestCasesNegative/2/2.mpd"}, {"url":"https://media.axprod.net/TestVectors/v9-MultiFormat/Clear/Manifest_1080p.mpd"}, @@ -132,8 +132,8 @@ {"dead-url-405":"https://livesim.dashif.org/livesim-dev/periods_60/xlink_30/insertad_1/testpic_2s/Manifest.mpd"}, {"url":"https://livesim.dashif.org/livesim/chunkdur_1/ato_7/testpic4_8s/Manifest300.mpd"}, {"url":"https://livesim.dashif.org/livesim/chunkdur_1/ato_7/testpic4_8s/Manifest.mpd"}, - {"url":"https://raw.githubusercontent.com/Dash-Industry-Forum/SAND-Test-Vectors/master/mpd/dash-if/HTTPSReporting-OK-MultiRes.mpd"}, - {"url":"https://raw.githubusercontent.com/Dash-Industry-Forum/SAND-Test-Vectors/master/mpd/dash-if/WSSReporting-OK-MultiRes.mpd"}, + {"url":"https://raw.githubusercontent.com/Dash-Industry-Forum/SAND-Test-Vectors/master/mpd/dash-if/HTTPSReporting-OK-MultiRes.mpd", "status" : "fails"}, + {"url":"https://raw.githubusercontent.com/Dash-Industry-Forum/SAND-Test-Vectors/master/mpd/dash-if/WSSReporting-OK-MultiRes.mpd", "status" : "fails"}, {"dead-url-404":"https://livesim.dashif.org/livesim/periods_60/mpdcallback_30/testpic_2s/Manifest.mpd"}, {"url":"https://dash.akamaized.net/dash264/TestCasesMCA/fraunhofer/MPEGH_Stereo_lc_mha1/1/Sintel/sintel_audio_video_mpegh_mha1_stereo_sidx.mpd"}, {"url":"https://dash.akamaized.net/dash264/TestCasesMCA/dolby/1/1/ChID_voices_51_256_ddp.mpd"}, @@ -249,7 +249,7 @@ {"url":"https://livesim.dashif.org/livesim/testpic_2s/Manifest.mpd#t=posix:now"}, {"url":"https://dash.akamaized.net/dash264/TestCasesIOP33/MPDChaining/regular_chain/1/manifest_regular_MPDChaining_live.mpd"}, {"url":"https://dash.akamaized.net/dash264/TestCasesIOP33/MPDChaining/regular_chain/2/manifest_regular_MPDChaining_OnDemand.mpd"}, - {"url":"https://dash.akamaized.net/dash264/TestCasesIOP33/resolveToZero/1/manifest.mpd"}, + {"url":"https://dash.akamaized.net/dash264/TestCasesIOP33/resolveToZero/1/manifest.mpd", "status" :"fails"}, {"url":"https://dash.akamaized.net/dash264/TestCases/4b/qualcomm/3/Solekai.mpd"}, {"url":"https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd"}, {"url":"https://media.axprod.net/TestVectors/v7-Clear/Manifest.mpd"}, @@ -262,7 +262,7 @@ {"url":"https://dash.akamaized.net/dash264/TestCasesHD/1c/qualcomm/1/MultiRate.mpd"}, {"url":"https://dash.akamaized.net/dash264/TestCasesHD/MultiPeriod_OnDemand/ThreePeriods/ThreePeriod_OnDemand2.mpd"}, {"url":"https://dash.akamaized.net/dash264/TestCasesHD/MultiPeriod_OnDemand/ThreePeriods/ThreePeriod_OnDemand_presentationDur.mpd"}, - {"url":"https://dash.akamaized.net/dash264/TestCasesHD/MultiPeriod_OnDemand/ThreePeriods/ThreePeriod_OnDemand_presentationDur_AudioTrim.mpd"}, + {"url":"https://dash.akamaized.net/dash264/TestCasesHD/MultiPeriod_OnDemand/ThreePeriods/ThreePeriod_OnDemand_presentationDur_AudioTrim.mpd", "status":"fails"}, {"url":"https://dash.akamaized.net/dash264/TestAdvertising/CMS/Axinom-CMS_AVC_MultiRes_MultiRate_25fps.mpd"}, {"url":"https://dash.akamaized.net/dash264/TestAdvertising/CMS/Axinom-CMS_AVC_MultiRes_MultiRate_2997fps.mpd"}, {"url":"https://dash.akamaized.net/dash264/TestAdvertising/CMS/Axinom-CMS_HEVC_MultiRes_MultiRate_25fps.mpd"}, @@ -271,7 +271,7 @@ {"url":"https://dash.akamaized.net/dash264/TestAdvertising/CMS/Axinom-CMS_MultiCodec_MultiRes_MultiRate_2997fps.mpd"}, {"url":"https://dash.akamaized.net/dash264/TestAdvertising/DRM/Axinom-DRM-in-disconnected-environments_AVC_MultiRes_MultiRate_25fps.mpd"}, {"url":"https://dash.akamaized.net/dash264/TestAdvertising/DRM/Axinom-DRM-in-disconnected-environments_AVC_MultiRes_MultiRate_2997fps.mpd"}, - {"url":"https://dash.akamaized.net/dash264/TestAdvertising/DRM/Axinom-DRM-in-disconnected-environments_HEVC_MultiRes_MultiRate_25fps.mpd"}, + {"url":"https://dash.akamaized.net/dash264/TestAdvertising/DRM/Axinom-DRM-in-disconnected-environments_HEVC_MultiRes_MultiRate_25fps.mpd", "status":"fails"}, {"url":"https://dash.akamaized.net/dash264/TestAdvertising/DRM/Axinom-DRM-in-disconnected-environments_HEVC_MultiRes_MultiRate_2997fps.mpd"}, {"url":"https://dash.akamaized.net/dash264/TestAdvertising/DRM/Axinom-DRM-in-disconnected-environments_MultiCodec_MultiRes_MultiRate_25fps.mpd"}, {"url":"https://dash.akamaized.net/dash264/TestAdvertising/DRM/Axinom-DRM-in-disconnected-environments_MultiCodec_MultiRes_MultiRate_2997fps.mpd"}, diff --git a/tests/regression-test-DASHIF-db.py b/tests/regression-test-DASHIF-db.py index 4c5bcc2..f936b7e 100644 --- a/tests/regression-test-DASHIF-db.py +++ b/tests/regression-test-DASHIF-db.py @@ -18,15 +18,7 @@ DASHIF_dataset_url = "https://raw.githubusercontent.com/Dash-Industry-Forum/Test-Assets-Dataset-Public/master/dataset/data/testvector.json" -class PrefixResolver(etree.Resolver): - # https://lxml.de/resolvers.html - def __init__(self, prefix): - self.prefix = prefix.lower() - - def resolve(self, url, pubid, context): - if url.lower().startswith(self.prefix): - res=requests.get(url, allow_redirects=True) - return self.resolve_string(res.text, context) +from resolver import PrefixResolver class TestManifests(unittest.TestCase): def setUp(self): diff --git a/tests/regression-test.py b/tests/regression-test.py index d15e06b..131554d 100644 --- a/tests/regression-test.py +++ b/tests/regression-test.py @@ -16,21 +16,13 @@ from lxml import etree +from resolver import PrefixResolver + DVBManifestsFile="DVB-manifests.json" HbbTVManifestsFile="HbbTV-manifests.json" MPEGCMAFManifestsFile="MPEG-CMAF-manifests.json" DASHIFManifestsFile="DASH-IF-manifests.json" -class PrefixResolver(etree.Resolver): - # https://lxml.de/resolvers.html - def __init__(self, prefix): - self.prefix = prefix.lower() - - def resolve(self, url, pubid, context): - if url.lower().startswith(self.prefix): - res=requests.get(url, allow_redirects=True) - return self.resolve_string(res.text, context) - class TestManifests(unittest.TestCase): def setUp(self): self.log = logging.getLogger('MDP_tests') @@ -43,6 +35,8 @@ def setUp(self): self.mpd_schema = etree.XMLSchema(etree.parse(schema_file, self.xsdParser)) # is_python3 = sys.version_info.major == 3 self.xmlParser=etree.XMLParser(load_dtd=True, no_network=False, huge_tree=True, resolve_entities=True) + self.xmlParser.resolvers.add(PrefixResolver("https")) + self.xmlParser.resolvers.add(PrefixResolver("http")) def check_a_manifest(self, mpdURL, source): with self.subTest(msg=mpdURL): diff --git a/tests/resolver.py b/tests/resolver.py new file mode 100644 index 0000000..3eab933 --- /dev/null +++ b/tests/resolver.py @@ -0,0 +1,12 @@ +import requests +from lxml import etree + +class PrefixResolver(etree.Resolver): + # https://lxml.de/resolvers.html + def __init__(self, prefix): + self.prefix = prefix.lower() + + def resolve(self, url, pubid, context): + if url.lower().startswith(self.prefix): + res=requests.get(url, allow_redirects=True) + return self.resolve_string(res.text, context) \ No newline at end of file