curds: Remove Notify.clear()

And switch callers over to using notify_cancel()

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
Anna Schumaker 2019-03-27 09:17:01 -04:00
parent 35e5cd1095
commit 92817e1e7a
9 changed files with 77 additions and 77 deletions

View File

@ -7,10 +7,6 @@ class Notify:
def __init__(self):
raise NotImplementedError
def clear():
Notify.notifications.clear()
Notify.queue.clear()
def notify(name, *args):
for (func, queue) in Notify.notifications.get(name, []):
if queue == True:
@ -22,6 +18,8 @@ class Notify:
cb = Notify.notifications.get(name, [])
if (func, queue) in cb:
cb.remove((func, queue))
if len(cb) == 0:
Notify.notifications.pop(name)
def notify_me(name, func, queue=False):
cb = Notify.notifications.setdefault(name, [])

View File

@ -1,6 +1,7 @@
# Copyright 2019 (c) Anna Schumaker.
from . import collection
from . import playlist
from .. import notify
from .. import tags
import os
import unittest
@ -24,3 +25,5 @@ class TestCollectionPlaylist(unittest.TestCase):
self.assertTrue(plist.loop)
self.assertTrue(plist.set_loop(False))
self.assertTrue(plist.loop)
notify.Notify.notify_cancel("new-track", plist.add)

View File

@ -11,9 +11,6 @@ import unittest
test_library = os.path.abspath("./trier/Test Library")
class TestLibraryPlaylist(unittest.TestCase):
def setUpClass():
notify.Notify.clear()
def setUp(self):
library.reset()
tags.clear()

View File

@ -15,89 +15,87 @@ test_library = os.path.abspath("./trier/Test Library")
class TestPlaylistManager(unittest.TestCase):
def setUp(self):
notify.Notify.clear()
tags.clear()
library.reset()
notify.Notify.notify_me("new-library-playlist", self.on_new_library)
self.playman = manager.PlaylistManager()
self.cb_plist = None
def tearDown(self):
notify.Notify.notify_cancel("new-track", self.playman["Collection"].add)
notify.Notify.notify_cancel("new-library-playlist", self.on_new_library)
library.stop()
def test_manager_init(self):
playman = manager.PlaylistManager()
self.assertIsInstance(playman, manager.PlaylistManager)
self.assertIsInstance(playman, dict)
self.assertIsInstance(playman["Collection"], collection.CollectionPlaylist)
self.assertIsInstance(playman["Previous"], previous.PreviousPlaylist)
self.assertIsInstance(playman["Library"], manager.LibraryManager)
self.assertIsInstance(playman["Library"], list)
self.assertEqual(playman.current, playman["Collection"])
self.assertEqual(playman.track, None)
def on_new_library(self, plist):
self.cb_plist = plist
def test_manager_library(self):
notify.Notify.notify_me("new-library-playlist", self.on_new_library)
playman = manager.PlaylistManager()
def test_manager_init(self):
self.assertIsInstance(self.playman, manager.PlaylistManager)
self.assertIsInstance(self.playman, dict)
self.assertIsInstance(self.playman["Collection"], collection.CollectionPlaylist)
self.assertIsInstance(self.playman["Previous"], previous.PreviousPlaylist)
self.assertIsInstance(self.playman["Library"], manager.LibraryManager)
self.assertIsInstance(self.playman["Library"], list)
plist = playman["Library"].add(test_library + "/")
self.assertEqual(self.playman.current, self.playman["Collection"])
self.assertEqual(self.playman.track, None)
def test_manager_library(self):
plist = self.playman["Library"].add(test_library + "/")
self.assertEqual(self.cb_plist, plist)
self.assertEqual(str(playman["Library"]), "<big>Library</big>")
self.assertEqual(playman["Library"].name, "Library")
self.assertEqual(playman["Library"].icon, "folder")
self.assertEqual(str(self.playman["Library"]), "<big>Library</big>")
self.assertEqual(self.playman["Library"].name, "Library")
self.assertEqual(self.playman["Library"].icon, "folder")
self.assertEqual(plist.name, test_library)
self.assertIsInstance(plist, library.LibraryPlaylist)
self.cb_plist = None
self.assertIsNone(playman["Library"].add(test_library))
self.assertIsNone(self.playman["Library"].add(test_library))
self.assertIsNone(self.cb_plist)
alist = playman["Library"].add(test_album)
alist = self.playman["Library"].add(test_album)
self.assertEqual(self.cb_plist, alist)
self.assertIsInstance(alist, library.LibraryPlaylist)
self.assertNotEqual(id(plist), id(alist))
self.assertIn(alist, playman["Library"])
self.assertIn(plist, playman["Library"])
self.assertIn(alist, self.playman["Library"])
self.assertIn(plist, self.playman["Library"])
def test_manager_on_scan(self):
playman = manager.PlaylistManager()
plist = playman["Library"].add(test_library)
self.assertEqual(playman["Library"].index(plist), 0)
self.assertEqual(playman["Library"][0], plist)
plist = self.playman["Library"].add(test_library)
self.assertEqual(self.playman["Library"].index(plist), 0)
self.assertEqual(self.playman["Library"][0], plist)
alist = playman["Library"].add(test_album)
self.assertEqual(playman["Library"].index(alist), 0)
self.assertEqual(playman["Library"].index(plist), 1)
self.assertEqual(playman["Library"][0], alist)
self.assertEqual(playman["Library"][1], plist)
alist = self.playman["Library"].add(test_album)
self.assertEqual(self.playman["Library"].index(alist), 0)
self.assertEqual(self.playman["Library"].index(plist), 1)
self.assertEqual(self.playman["Library"][0], alist)
self.assertEqual(self.playman["Library"][1], plist)
library.join()
self.assertEqual(len(plist), 1250)
self.assertEqual(len(alist), 12)
self.assertEqual(len(playman["Collection"]), len(alist) + len(plist))
self.assertEqual(len(self.playman["Collection"]), len(alist) + len(plist))
def test_manager_next_prev(self):
playman = manager.PlaylistManager()
self.assertIsNone(playman.next())
self.assertIsNone(playman.track)
self.assertIsNone(self.playman.next())
self.assertIsNone(self.playman.track)
clist = playman["Collection"]
prev = playman["Previous"]
plist = playman["Library"].add(test_library)
clist = self.playman["Collection"]
prev = self.playman["Previous"]
plist = self.playman["Library"].add(test_library)
library.join()
track1 = playman.next()
self.assertEqual(playman.track, track1)
track1 = self.playman.next()
self.assertEqual(self.playman.track, track1)
self.assertEqual(clist.current, 0)
self.assertEqual(track1, clist[0])
self.assertEqual(len(prev), 1)
self.assertEqual(prev[0], track1)
track2 = playman.next()
self.assertEqual(playman.track, track2)
track2 = self.playman.next()
self.assertEqual(self.playman.track, track2)
self.assertEqual(clist.current, 1)
self.assertEqual(track2, clist[1])
@ -105,4 +103,4 @@ class TestPlaylistManager(unittest.TestCase):
self.assertEqual(prev[0], track2)
self.assertEqual(prev[1], track1)
self.assertEqual(playman.previous(), track1)
self.assertEqual(self.playman.previous(), track1)

View File

@ -11,11 +11,19 @@ test_library = os.path.abspath("./trier/Test Library")
class TestPlaylist(unittest.TestCase):
def setUp(self):
tags.clear()
notify.Notify.clear()
notify.Notify.notify_me("add-track", self.on_add)
self.cb_plist = None
self.cb_track = None
self.cb_index = None
def tearDown(self):
notify.Notify.notify_cancel("add-track", self.on_add)
def on_add(self, plist, track, index):
self.cb_plist = plist
self.cb_track = track
self.cb_index = index
def test_playlist_init(self):
plist = playlist.Playlist("Test Playlist")
self.assertEqual(plist.name, "Test Playlist")
@ -75,18 +83,11 @@ class TestPlaylist(unittest.TestCase):
track.length = 172800
self.assertEqual(plist.runtime(), "2 days")
def on_add(self, plist, track, index):
self.cb_plist = plist
self.cb_track = track
self.cb_index = index
def test_playlist_notifications(self):
path = os.path.join(test_library, "Test Artist 01", "Test Album 1")
track = tags.Track.lookup(os.path.join(path, "01 - Test Track 01.ogg"))
plist = playlist.Playlist("Test Playlist")
notify.Notify.notify_me("add-track", self.on_add)
plist.add(track)
self.assertEqual(self.cb_plist, plist)
self.assertEqual(self.cb_track, track)

View File

@ -10,12 +10,13 @@ test_album = os.path.abspath("./trier/Test Library/Test Artist 01/Test Album 1")
class TestPreviousPlaylist(unittest.TestCase):
def setUp(self):
notify.Notify.notify_me("add-track", self.on_add_track)
self.cb_plist = None
self.cb_track = None
self.cb_index = 0
def tearDown(self):
notify.Notify.notifications.clear()
notify.Notify.notify_cancel("add-track", self.on_add_track)
def on_add_track(self, plist, track, index):
if isinstance(plist, previous.PreviousPlaylist):
@ -25,7 +26,6 @@ class TestPreviousPlaylist(unittest.TestCase):
def test_previous_playlist(self):
plist = previous.PreviousPlaylist()
notify.Notify.notify_me("add-track", self.on_add_track)
self.assertIsInstance(plist, previous.PreviousPlaylist)
self.assertIsInstance(plist, playlist.Playlist)

View File

@ -4,6 +4,8 @@ import unittest
class TestNotify(unittest.TestCase):
def setUp(self):
notify.Notify.notifications.clear()
notify.Notify.queue.clear()
self.test_count = 0
self.test_arg1 = None
self.test_arg2 = None
@ -47,9 +49,6 @@ class TestNotify(unittest.TestCase):
notify.Notify.notify_cancel("on-test", self.on_test1)
self.assertEqual(notify.Notify.notifications, {"on-test" : [ (self.on_test3, True) ]})
notify.Notify.notify_cancel("on-test", self.on_test3, True)
self.assertEqual(notify.Notify.notifications, {"on-test" : [ ]})
notify.Notify.notify_cancel("on-test", self.on_test1)
self.assertEqual(notify.Notify.notifications, {"on-test" : [ ]})
notify.Notify.clear()
self.assertEqual(notify.Notify.notifications, { })
notify.Notify.notify_cancel("on-test", self.on_test1)
self.assertEqual(notify.Notify.notifications, { })

View File

@ -8,10 +8,16 @@ album_info = {"album" : [ "Test Album" ], "albumartist" : [ "Test Artist" ],
class TestAlbumTag(unittest.TestCase):
def setUp(self):
notify.Notify.clear()
tags.clear()
notify.Notify.notify_me("new-album", self.on_new_album)
self.cb_album = None
def tearDown(self):
notify.Notify.notify_cancel("new-album", self.on_new_album)
def on_new_album(self, album):
self.cb_album = album
def test_album_init_basic(self):
a = tags.Album(album_info)
self.assertIsInstance(a, tags.Tag)
@ -57,11 +63,7 @@ class TestAlbumTag(unittest.TestCase):
self.assertEqual(tags.Album({"album" : [ "Test Album CD 9/10" ]}).album, "Test Album")
self.assertEqual(tags.Album({"album" : [ "Disc One: Test Album" ]}).album, "Disc One: Test Album")
def on_new_album(self, album):
self.cb_album = album
def test_album_lookup(self):
notify.Notify.notify_me("new-album", self.on_new_album)
a = tags.Album.lookup(album_info)
self.assertIsNotNone(a)
self.assertIn(a, tags.tag_map.values())

View File

@ -8,10 +8,16 @@ test_tracks = os.path.abspath("./trier/Test Album")
class TestTrackTag(unittest.TestCase):
def setUp(self):
notify.Notify.clear()
tags.clear()
notify.Notify.notify_me("new-track", self.on_new_track)
self.cb_track = None
def tearDown(self):
notify.Notify.notify_cancel("new-track", self.on_new_track)
def on_new_track(self, track):
self.cb_track = track
def test_track_init_basic(self):
p = [ test_tracks, "01 - Test Track.ogg" ]
t = tags.Track(os.path.join(*p))
@ -66,11 +72,7 @@ class TestTrackTag(unittest.TestCase):
self.assertIsNone(tags.Track.lookup(os.path.join(test_tracks, "text.txt")))
self.assertIsNone(tags.Track.lookup(os.path.join(test_tracks, "test.txt")))
def on_new_track(self, track):
self.cb_track = track
def test_track_add(self):
notify.Notify.notify_me("new-track", self.on_new_track)
t = tags.Track.lookup(os.path.join(test_tracks, "01 - Test Track.ogg"))
self.assertIsNotNone(t)
self.assertIn(t, tags.tag_map.values())