add wem stream player

This commit is contained in:
stubbfel
2014-10-08 00:27:43 +02:00
parent 53741bb363
commit 3fdbef4245
6 changed files with 60 additions and 9 deletions

View File

@@ -1 +1,4 @@
__author__ = 'dev' __author__ = 'dev'
web_stream_commands = {"web_stream_player_command": "mplayer"}

View File

@@ -1,5 +1,6 @@
__author__ = 'dev' __author__ = 'dev'
= { web_stream_list= {
"skaworld": "http://stream.laut.fm/skaworld",
"skafari ": "http://stream.laut.fm/skafari"
} }

View File

@@ -1 +1,27 @@
__author__ = 'dev' __author__ = 'dev'
from config.stream_list import web_stream_list as wsl
from config.commands import web_stream_commands as wcmd
from utility.subprocess_dict import SubprocessDict
class WebStreamPlayer:
def __init__(self, player_command=wcmd["web_stream_player_command"], stream_list=wsl):
self.__player_command = player_command
self.__stream_list = stream_list
self.__process_list = SubprocessDict()
self.__current_stream_name = None
def get_current_stream_name(self):
return self.__current_stream_name
def play_stream(self, stream_name):
if stream_name in self.__stream_list:
self.__process_list.clear_dict()
self.__process_list.add_process([self.__player_command, self.__stream_list[stream_name]])
self.__current_stream_name = stream_name
def stop_stream(self):
self.__process_list.clear_dict()
self.__current_stream_name = None

View File

@@ -1,11 +1,20 @@
__author__ = 'dev' __author__ = 'dev'
import unittest import unittest
import subprocess
from config.commands import web_stream_commands as wcmd
class MyTestCase(unittest.TestCase): class TestCommands(unittest.TestCase):
def test_something(self):
self.assertEqual(True, False) def setUp(self):
self.__wspc =wcmd["web_stream_player_command"]
def test_web_stream_commands(self):
self.assertEqual(0, subprocess.call(self.__wspc))
def test_web_stream_commands_error_wrong_commands(self):
self.assertRaises(FileNotFoundError, subprocess.call,self.__wspc + "fail")
if __name__ == '__main__': if __name__ == '__main__':

View File

@@ -1,11 +1,24 @@
__author__ = 'dev' __author__ = 'dev'
import unittest import unittest
import urllib.request
import urllib.error
from config.stream_list import web_stream_list as wsl
class MyTestCase(unittest.TestCase): class TestStreamList(unittest.TestCase):
def test_something(self):
self.assertEqual(True, False) def setUp(self):
self.__stream_url = wsl.values()
def test_stream_available(self):
for url in self.__stream_url:
response = urllib.request.urlopen(url)
self.assertEqual(200, response.getcode())
def test_stream_wrong_url(self):
self.__stream_url = "http://wrong.stream"
self.assertRaises(urllib.error.URLError, urllib.request.urlopen, self.__stream_url)
if __name__ == '__main__': if __name__ == '__main__':

View File

@@ -21,7 +21,6 @@ class TestWebStreamPlayer(unittest.TestCase):
def test_play_stream_error_wrong_stream_name(self): def test_play_stream_error_wrong_stream_name(self):
self.__player.play_stream(self.__wrong_stream_name) self.__player.play_stream(self.__wrong_stream_name)
self.assertEqual(self.__player.get_current_stream_name(), None) self.assertEqual(self.__player.get_current_stream_name(), None)
self.assertTrue(True)
def test_stop_stream(self): def test_stop_stream(self):
self.__player.play_stream(self.__stream_name) self.__player.play_stream(self.__stream_name)