def test_from_flash_object(self): """hxs_media_utils.extract_url_from_kplayer_object() can extract the source url from the object parameters""" raw_html = """ <html> <body> <div id="kewego-media"> <object width="300" height="200" type="application/x-shockwave-flash" id="054c411daa8s" data="http://sll.kewego.com/swf/p3/epix.swf"> <param name="flashVars" value="language_code=fr&playerKey=7b7e2d7a9682&skinKey=a07930e183e6&sig=054c411daa8s&autostart=0&advertise=true"> <param name="movie" value="http://sll.kewego.com/swf/p3/epix.swf"> <param name="allowFullScreen" value="true"> <param name="allowscriptaccess" value="always"> <param name="wmode" value="opaque"> <video width="300" height="200" preload="none" poster="http://api.kewego.com/video/getHTML5Thumbnail/?playerKey=7b7e2d7a9682&sig=054c411daa8s" controls="controls"> </video> <script src="//sll.kewego.com/embed/assets/kplayer-standalone.js"></script> <script defer="defer">kitd.html5loader("flash_epix_054c411daa8s");</script> </object> </div> </body> </html> """ hxs = HtmlXPathSelector(text=raw_html) kewego_object = hxs.select("//div [@id='kewego-media']/object") expected_url = "http://sll.kewego.com/swf/p3/epix.swf?language_code=fr&playerKey=7b7e2d7a9682&skinKey=a07930e183e6&sig=054c411daa8s&autostart=0&advertise=true" url = hxs_media_utils.extract_url_from_kplayer_object(kewego_object) eq_(expected_url, url)
def test_no_params(self): """hxs_media_utils.extract_url_from_kplayer_object() raises ValueError when the 'flashVars' child parameter is missing """ raw_html = """ <html> <body> <div id="kewego-media"> <object width="300" height="200" type="application/x-shockwave-flash" id="054c411daa8s" data="http://sll.kewego.com/swf/p3/epix.swf"> <param name="movie" value="http://sll.kewego.com/swf/p3/epix.swf"> <param name="allowFullScreen" value="true"> <param name="allowscriptaccess" value="always"> <param name="wmode" value="opaque"> <video width="300" height="200" preload="none" poster="http://api.kewego.com/video/getHTML5Thumbnail/?playerKey=7b7e2d7a9682&sig=054c411daa8s" controls="controls"> </video> <script src="//sll.kewego.com/embed/assets/kplayer-standalone.js"></script> <script defer="defer">kitd.html5loader("flash_epix_054c411daa8s");</script> </object> </div> </body> </html> """ hxs = HtmlXPathSelector(text=raw_html) kewego_object = hxs.select("//div [@id='kewego-media']/object") hxs_media_utils.extract_url_from_kplayer_object(kewego_object)