write tests for sources

This commit is contained in:
bkfox
2023-06-11 16:29:38 +02:00
parent cbd28bc946
commit b586bc5309
3 changed files with 161 additions and 56 deletions

View File

@ -76,7 +76,7 @@ class PlaylistSource(Source):
self.program = program
super().__init__(controller, id=id, **kwargs)
self.path = os.path.join(self.station.path, self.id + ".m3u")
self.path = os.path.join(self.station.path, f"{self.id}.m3u")
def get_sound_queryset(self):
"""Get playlist's sounds queryset."""
@ -115,23 +115,6 @@ class QueueSource(Source):
queue = None
"""Source's queue (excluded on_air request)"""
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
def push(self, *paths):
"""Add the provided paths to source's play queue."""
for path in paths:
self.controller.send(self.id, "_queue.push ", path)
def fetch(self):
super().fetch()
queue = self.controller.send(self.id, "_queue.queue").strip()
if not queue:
self.queue = []
return
self.queue = queue.split(" ")
@property
def requests(self):
"""Queue as requests metadata."""
@ -139,3 +122,20 @@ class QueueSource(Source):
for request in requests:
request.fetch()
return requests
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
def push(self, *paths):
"""Add the provided paths to source's play queue."""
for path in paths:
self.controller.send(f"{self.id}_queue.push {path}")
def fetch(self):
super().fetch()
queue = self.controller.send(f"{self.id}_queue.queue").strip()
if not queue:
self.queue = []
return
self.queue = queue.split(" ")