curds: Add a Collection playlist
This playlist collects all tracks that the user has added, across all libraries. Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
f53eaa8028
commit
96ea582522
|
@ -1,5 +1,6 @@
|
|||
# Copyright 2019 (c) Anna Schumaker.
|
||||
from . import library
|
||||
from . import playlist
|
||||
import os
|
||||
|
||||
class LibraryManager(dict):
|
||||
|
@ -12,4 +13,10 @@ class LibraryManager(dict):
|
|||
|
||||
class PlaylistManager(dict):
|
||||
def __init__(self):
|
||||
self["Library"] = LibraryManager()
|
||||
self["Collection"] = playlist.Playlist("collection")
|
||||
self["Library"] = LibraryManager()
|
||||
|
||||
playlist.Playlist.notify_me("on-scan", self.on_scan)
|
||||
|
||||
def on_scan(self, plist, track):
|
||||
self["Collection"].add(track)
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
# Copyright 2019 (c) Anna Schumaker.
|
||||
from . import library
|
||||
from . import manager
|
||||
from . import playlist
|
||||
from .. import tags
|
||||
from .. import threadqueue
|
||||
import os
|
||||
import unittest
|
||||
|
@ -10,15 +12,20 @@ test_library = os.path.abspath("./trier/Test Library")
|
|||
|
||||
class TestPlaylistManager(unittest.TestCase):
|
||||
def setUp(self):
|
||||
tags.tag_map.clear()
|
||||
if not library.library_thread.is_alive():
|
||||
library.library_thread = threadqueue.ThreadQueue()
|
||||
|
||||
def tearDown(self):
|
||||
library.library_thread.stop()
|
||||
|
||||
def test_manager_init(self):
|
||||
playman = manager.PlaylistManager()
|
||||
self.assertIsInstance(playman, manager.PlaylistManager)
|
||||
self.assertIsInstance(playman, dict)
|
||||
self.assertIsInstance(playman["Library"], manager.LibraryManager)
|
||||
self.assertIsInstance(playman["Library"], dict)
|
||||
self.assertIsInstance(playman["Collection"], playlist.Playlist)
|
||||
self.assertIsInstance(playman["Library"], manager.LibraryManager)
|
||||
self.assertIsInstance(playman["Library"], dict)
|
||||
|
||||
def test_manager_library(self):
|
||||
playman = manager.PlaylistManager()
|
||||
|
@ -33,4 +40,12 @@ class TestPlaylistManager(unittest.TestCase):
|
|||
self.assertIn(alist, playman["Library"].values())
|
||||
self.assertIn(plist, playman["Library"].values())
|
||||
|
||||
library.library_thread.stop()
|
||||
def test_manager_on_scan(self):
|
||||
playman = manager.PlaylistManager()
|
||||
alist = playman["Library"][test_album]
|
||||
plist = playman["Library"][test_library]
|
||||
|
||||
library.library_thread.join()
|
||||
self.assertEqual(len(plist), 1250)
|
||||
self.assertEqual(len(alist), 11)
|
||||
self.assertEqual(len(playman["Collection"]), len(alist) + len(plist))
|
||||
|
|
Loading…
Reference in New Issue