File: test_streamlink_api.py

package info (click to toggle)
streamlink 1.0.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 3,588 kB
  • sloc: python: 31,121; makefile: 141; sh: 93
file content (49 lines) | stat: -rw-r--r-- 1,747 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import os.path

import unittest
from tests.mock import patch

from streamlink import Streamlink
from streamlink.api import streams

PluginPath = os.path.join(os.path.dirname(__file__), "plugins")


def get_session():
    s = Streamlink()
    s.load_plugins(PluginPath)
    return s


class TestStreamlinkAPI(unittest.TestCase):
    @patch('streamlink.api.Streamlink', side_effect=get_session)
    def test_find_test_plugin(self, session):
        self.assertTrue(
            "rtmp" in streams("test.se")
        )

    @patch('streamlink.api.Streamlink', side_effect=get_session)
    def test_no_streams_exception(self, session):
        self.assertEqual({}, streams("test.se/NoStreamsError"))

    @patch('streamlink.api.Streamlink', side_effect=get_session)
    def test_no_streams(self, session):
        self.assertEqual({}, streams("test.se/empty"))

    @patch('streamlink.api.Streamlink', side_effect=get_session)
    def test_stream_type_filter(self, session):
        stream_types = ["rtmp", "hls"]
        available_streams = streams("test.se", stream_types=stream_types)
        self.assertTrue("rtmp" in available_streams)
        self.assertTrue("hls" in available_streams)
        self.assertTrue("test" not in available_streams)
        self.assertTrue("http" not in available_streams)

    @patch('streamlink.api.Streamlink', side_effect=get_session)
    def test_stream_type_wildcard(self, session):
        stream_types = ["rtmp", "hls", "*"]
        available_streams = streams("test.se", stream_types=stream_types)
        self.assertTrue("rtmp" in available_streams)
        self.assertTrue("hls" in available_streams)
        self.assertTrue("test" in available_streams)
        self.assertTrue("http" in available_streams)