def test_get_streams(self, hlsstream, mock_get_stream_data): mock_get_stream_data.return_value = { "stream": "http://test.se/stream1" } page_resp = Mock() page_resp.text = u""" <div class="video-js theoplayer-skin theo-seekbar-above-controls content-box vjs-fluid" data-resource= "bbcone" data-token = "1324567894561268987948596154656418448489159" data-content-type="live" data-environment="live" data-subscription="free" data-channel-id="89"> <div id="channel-info" class="channel-info"> <div class="row visible-xs visible-sm"> """ self.session.http.get.return_value = page_resp hlsstream.parse_variant_playlist.return_value = {"test": HLSStream(self.session, "http://test.se/stream1")} TVPlayer.bind(self.session, "test.tvplayer") plugin = TVPlayer("http://tvplayer.com/watch/dave") streams = plugin.streams() self.assertTrue("test" in streams) # test the url is used correctly self.session.http.get.assert_called_with("http://tvplayer.com/watch/dave") # test that the correct API call is made mock_get_stream_data.assert_called_with(resource="bbcone", channel_id="89", token="1324567894561268987948596154656418448489159") # test that the correct URL is used for the HLSStream hlsstream.parse_variant_playlist.assert_called_with(ANY, "http://test.se/stream1")
def test_get_streams(self, hlsstream, mock_get_stream_data): mock_get_stream_data.return_value = { "response": {"stream": "http://test.se/stream1", "drm": None} } page_resp = Mock() page_resp.text = u""" <div class="col-xs-12"> <div id="live-player-root" data-player-library="videojs" data-player-id="ILWxqLKV91Ql8kF" data-player-key="2Pw1Eg0Px3Gy9Jm3Ry8Ar5Bi5Vc5Nk" data-player-uvid="139" data-player-token="275c808a685a09d6e36d0253ab3765af" data-player-expiry="1531958189" data-player-poster="" data-requested-channel-id="139" data-play-button="/assets/tvplayer/images/dist/play-button-epg.svg" data-update-url="/now-ajax" data-timezone-name="Europe/London" data-thumb-link-classes="" data-theme-name="tvplayer" data-base-entitlements="%5B%22free%22%5D" data-has-identity="0" data-require-identity-to-watch-free="1" data-stream-type="live" data-live-route="/watch/%25live_channel_id%25" > </div> </div> """ self.session.http.get.return_value = page_resp hlsstream.parse_variant_playlist.return_value = { "test": HLSStream(self.session, "http://test.se/stream1") } TVPlayer.bind(self.session, "test.tvplayer") plugin = TVPlayer("http://tvplayer.com/watch/dave") streams = plugin.streams() self.assertTrue("test" in streams) # test the url is used correctly self.session.http.get.assert_called_with( "http://tvplayer.com/watch/dave" ) # test that the correct API call is made mock_get_stream_data.assert_called_with( expiry="1531958189", key="2Pw1Eg0Px3Gy9Jm3Ry8Ar5Bi5Vc5Nk", token="275c808a685a09d6e36d0253ab3765af", uvid="139" ) # test that the correct URL is used for the HLSStream hlsstream.parse_variant_playlist.assert_called_with( ANY, "http://test.se/stream1" )
def test_get_invalid_page(self, mock_http): page_resp = Mock() page_resp.text = u""" var validate = "foo"; var resourceId = "1234"; """ mock_http.get.return_value = page_resp plugin = TVPlayer("http://tvplayer.com/watch/dave") streams = plugin.get_streams() self.assertEqual({}, streams) # test the url is used correctly mock_http.get.assert_called_with("http://tvplayer.com/watch/dave", headers=ANY)
def test_get_invalid_page(self): page_resp = Mock() page_resp.text = u""" var validate = "foo"; var resourceId = "1234"; """ self.session.http.get.return_value = page_resp TVPlayer.bind(self.session, "test.tvplayer") plugin = TVPlayer("http://tvplayer.com/watch/dave") streams = plugin.streams() self.assertEqual({}, streams) # test the url is used correctly self.session.http.get.assert_called_with("http://tvplayer.com/watch/dave")
def test_get_invalid_page(self): page_resp = Mock() page_resp.text = u""" var validate = "foo"; var resourceId = "1234"; """ self.session.http.get.return_value = page_resp TVPlayer.bind(self.session, "test.tvplayer") plugin = TVPlayer("http://tvplayer.com/watch/dave") streams = plugin.streams() self.assertEqual({}, streams) # test the url is used correctly self.session.http.get.assert_called_with( "http://tvplayer.com/watch/dave")
def test_get_streams(self, hlsstream, mock_get_stream_data): mock_get_stream_data.return_value = { "stream": "http://test.se/stream1" } page_resp = Mock() page_resp.text = u""" <div class="video-js theoplayer-skin theo-seekbar-above-controls content-box vjs-fluid" data-resource= "bbcone" data-token = "1324567894561268987948596154656418448489159" data-content-type="live" data-environment="live" data-subscription="free" data-channel-id="89"> <div id="channel-info" class="channel-info"> <div class="row visible-xs visible-sm"> """ self.session.http.get.return_value = page_resp hlsstream.parse_variant_playlist.return_value = { "test": HLSStream(self.session, "http://test.se/stream1") } TVPlayer.bind(self.session, "test.tvplayer") plugin = TVPlayer("http://tvplayer.com/watch/dave") streams = plugin.get_streams() self.assertTrue("test" in streams) # test the url is used correctly self.session.http.get.assert_called_with( "http://tvplayer.com/watch/dave") # test that the correct API call is made mock_get_stream_data.assert_called_with( resource="bbcone", channel_id="89", token="1324567894561268987948596154656418448489159") # test that the correct URL is used for the HLSStream hlsstream.parse_variant_playlist.assert_called_with( ANY, "http://test.se/stream1")
def test_get_streams(self, hlsstream, mock_http): api_data = { "tvplayer": { "status": "200 OK", "response": { "stream": "http://test.se/stream1" } } } page_resp = Mock() page_resp.text = u""" var validate = "foo"; var resourceId = "1234"; var platform = "test"; """ api_resp = Mock() api_resp.text = json.dumps(api_data) mock_http.get.return_value = page_resp mock_http.post.return_value = api_resp mock_http.json.return_value = api_data hlsstream.parse_variant_playlist.return_value = { "test": HLSStream(None, "http://test.se/stream1") } plugin = TVPlayer("http://tvplayer.com/watch/dave") streams = plugin.get_streams() self.assertTrue("test" in streams) # test the url is used correctly mock_http.get.assert_called_with("http://tvplayer.com/watch/dave", headers=ANY) # test that the correct API call is made mock_http.post.assert_called_with( "http://api.tvplayer.com/api/v2/stream/live", data=dict(id=u"1234", validate=u"foo", platform=u"test")) # test that the correct URL is used for the HLSStream hlsstream.parse_variant_playlist.assert_called_with( ANY, "http://test.se/stream1", headers=ANY)
def test_can_handle_url(self): # should match self.assertTrue(TVPlayer.can_handle_url("http://tvplayer.com/watch/")) self.assertTrue(TVPlayer.can_handle_url("http://www.tvplayer.com/watch/")) self.assertTrue(TVPlayer.can_handle_url("http://tvplayer.com/watch")) self.assertTrue(TVPlayer.can_handle_url("http://www.tvplayer.com/watch")) self.assertTrue(TVPlayer.can_handle_url("http://tvplayer.com/watch/dave")) self.assertTrue(TVPlayer.can_handle_url("http://www.tvplayer.com/watch/itv")) self.assertTrue(TVPlayer.can_handle_url("https://www.tvplayer.com/watch/itv")) self.assertTrue(TVPlayer.can_handle_url("https://tvplayer.com/watch/itv")) # shouldn't match self.assertFalse(TVPlayer.can_handle_url("http://www.tvplayer.com/")) self.assertFalse(TVPlayer.can_handle_url("http://www.tvcatchup.com/")) self.assertFalse(TVPlayer.can_handle_url("http://www.youtube.com/"))
def test_can_handle_url(self): # should match self.assertTrue(TVPlayer.can_handle_url("http://tvplayer.com/watch/")) self.assertTrue(TVPlayer.can_handle_url("http://www.tvplayer.com/watch/")) self.assertTrue(TVPlayer.can_handle_url("http://tvplayer.com/watch")) self.assertTrue(TVPlayer.can_handle_url("http://www.tvplayer.com/watch")) self.assertTrue(TVPlayer.can_handle_url("http://tvplayer.com/watch/dave")) self.assertTrue(TVPlayer.can_handle_url("http://www.tvplayer.com/watch/itv")) self.assertTrue(TVPlayer.can_handle_url("https://www.tvplayer.com/watch/itv")) self.assertTrue(TVPlayer.can_handle_url("https://tvplayer.com/watch/itv")) # shouldn't match self.assertFalse(TVPlayer.can_handle_url("http://www.tvplayer.com/")) self.assertFalse(TVPlayer.can_handle_url("http://www.tvcatchup.com/")) self.assertFalse(TVPlayer.can_handle_url("http://www.youtube.com/"))