curds: Begin implementing a playlist manager
This will give us a single place for the UI to look up and control playlists. Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
713e8b2dd3
commit
a2037d6c59
|
@ -1 +1,12 @@
|
||||||
# Copyright 2019 (c) Anna Schumaker.
|
# Copyright 2019 (c) Anna Schumaker.
|
||||||
|
from . import library
|
||||||
|
import os
|
||||||
|
|
||||||
|
plist_map = {"Library" : dict()}
|
||||||
|
|
||||||
|
def lookup_library(path):
|
||||||
|
path = os.path.abspath(path)
|
||||||
|
plist = plist_map["Library"].get(path, None)
|
||||||
|
if plist != None:
|
||||||
|
return plist
|
||||||
|
return plist_map["Library"].setdefault(path, library.LibraryPlaylist(path))
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
# Copyright 2019 (c) Anna Schumaker.
|
||||||
|
from . import playlist
|
||||||
|
from . import threadqueue
|
||||||
|
import os
|
||||||
|
import unittest
|
||||||
|
|
||||||
|
test_album = os.path.abspath("./trier/Test Album")
|
||||||
|
test_library = os.path.abspath("./trier/Test Library")
|
||||||
|
|
||||||
|
class TestPlaylistManager(unittest.TestCase):
|
||||||
|
def setUpClass():
|
||||||
|
if not playlist.library.library_thread.is_alive():
|
||||||
|
playlist.library.library_thread = threadqueue.ThreadQueue()
|
||||||
|
|
||||||
|
def tearDownClass():
|
||||||
|
playlist.library.library_thread.stop()
|
||||||
|
|
||||||
|
def test_playman_init(self):
|
||||||
|
self.assertIsInstance(playlist.plist_map, dict)
|
||||||
|
self.assertEqual(playlist.plist_map["Library"], {})
|
||||||
|
self.assertTrue(playlist.library.library_thread.is_alive())
|
||||||
|
|
||||||
|
def test_playman_lookup_library(self):
|
||||||
|
plist = playlist.lookup_library(test_library + "/")
|
||||||
|
self.assertIsInstance(plist, playlist.library.LibraryPlaylist)
|
||||||
|
self.assertEqual(plist.name, test_library)
|
||||||
|
self.assertEqual(plist, playlist.plist_map["Library"][test_library])
|
||||||
|
self.assertEqual(playlist.lookup_library(test_library), plist)
|
||||||
|
self.assertEqual(len(playlist.plist_map["Library"].values()), 1)
|
||||||
|
|
||||||
|
alist = playlist.lookup_library(test_album)
|
||||||
|
self.assertIsInstance(alist, playlist.library.LibraryPlaylist)
|
||||||
|
self.assertIn(alist, playlist.plist_map["Library"].values())
|
||||||
|
self.assertIn(plist, playlist.plist_map["Library"].values())
|
Loading…
Reference in New Issue