lib: Give TagStores an init_track() function

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
Anna Schumaker 2021-06-23 14:40:19 -04:00
parent def33c625a
commit 4da6c6b36e
2 changed files with 14 additions and 0 deletions

View File

@ -35,6 +35,12 @@ class TagStore:
t.add_track(track)
return t
def init_track(self, name, track):
with self.lock:
if (t := self.store.get(name)) != None:
t.init_track(track)
return t
def remove(self, t, track=None):
if track:
t.remove_track(track)

View File

@ -4,6 +4,10 @@ from . import tagstore
import threading
import unittest
class FakeTrack:
def __init__(self, trackid):
self.trackid = trackid
class TestTagStore(unittest.TestCase):
def setUp(self):
self.added = None
@ -70,6 +74,7 @@ class TestTagStore(unittest.TestCase):
def test_tag_store_state(self):
store = tagstore.TagStore()
track = FakeTrack(1)
tag = store.add("test", 1)
state = store.__getstate__()
@ -81,3 +86,6 @@ class TestTagStore(unittest.TestCase):
self.assertIsInstance(store.lock, type(threading.Lock()))
self.assertIsInstance(store.Added, publisher.Publisher)
self.assertIsInstance(store.Removed, publisher.Publisher)
self.assertEqual(store.init_track("test", track), tag)
self.assertEqual(tag.tracks, [ track ])