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): 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, mock_http): page_resp = Mock() page_resp.text = u""" var validate = "foo"; var resourceId = "1234"; """ mock_http.get.return_value = page_resp TVPlayer.bind(self.session, "test.plugin.tvplayer") 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")
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")