示例#1
0
    def test_get_streams(self, hlsstream, mock_http, 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">
        """

        mock_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.plugin.tvplayer")
        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")
        # 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_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)
示例#3
0
    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")
示例#4
0
    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.get_streams()

        self.assertEqual({}, streams)

        # test the url is used correctly

        self.session.http.get.assert_called_with(
            "http://tvplayer.com/watch/dave")
示例#5
0
    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")
示例#6
0
    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)