trackdb: Use TagSuperStore for Albums
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
d342cb398a
commit
f98d8bd4dc
|
@ -90,6 +90,7 @@ class TestTrackDB(unittest.TestCase):
|
|||
self.assertEqual(len(trackdb.library_paths), 1)
|
||||
self.assertEqual(len(trackdb.library_paths[0].tracks), 12)
|
||||
self.assertEqual(len(trackdb.tags.Artist), 3)
|
||||
self.assertEqual(len(trackdb.tags.Album), 12)
|
||||
|
||||
def test_trackdb_stress(self):
|
||||
lib = trackdb.add_path("./trier/Test Library/")
|
||||
|
|
|
@ -40,7 +40,7 @@ def remove_path(path):
|
|||
|
||||
def _do_save():
|
||||
with data.DataFile(db_file, data.WRITE) as f:
|
||||
f.pickle([ tags.Artist, library.Tracks, library_paths ])
|
||||
f.pickle([ tags.Artist, tags.Album, library.Tracks, library_paths ])
|
||||
|
||||
def save(*args):
|
||||
save_bus.board(_do_save)
|
||||
|
@ -49,7 +49,7 @@ def load():
|
|||
global library_paths
|
||||
with data.DataFile(db_file, data.READ) as f:
|
||||
if f.exists():
|
||||
(tags.Artist, library.Tracks, library_paths) = f.unpickle()
|
||||
(tags.Artist, tags.Album, library.Tracks, library_paths) = f.unpickle()
|
||||
|
||||
def __register_callbacks():
|
||||
LibraryAdded.register(save)
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
from lib import tagstore
|
||||
|
||||
Artist = tagstore.TagStore()
|
||||
Album = tagstore.TagSuperStore()
|
||||
|
||||
def reset():
|
||||
Artist.reset()
|
||||
Album.reset()
|
||||
|
|
|
@ -6,9 +6,12 @@ import unittest
|
|||
class TestTags(unittest.TestCase):
|
||||
def test_tags_init(self):
|
||||
self.assertIsInstance(tags.Artist, tagstore.TagStore)
|
||||
self.assertIsInstance(tags.Album, tagstore.TagSuperStore)
|
||||
|
||||
def test_tags_reset(self):
|
||||
tags.Artist.store = {"a" : 1 }
|
||||
tags.Album.store = {("a", "b") : 2 }
|
||||
|
||||
tags.reset()
|
||||
self.assertEqual(tags.Artist.store, { })
|
||||
self.assertEqual(tags.Album.store, { })
|
||||
|
|
|
@ -29,7 +29,8 @@ class TestTrack(unittest.TestCase):
|
|||
|
||||
def test_track_album(self):
|
||||
trak = track.Track(1, test_tracks / "01 - Test Track.ogg", self.lib)
|
||||
self.assertEqual(trak.album, "Test Album")
|
||||
artist = trak.artist
|
||||
self.assertEqual(trak.album, tags.Album[artist, "Test Album"])
|
||||
self.assertEqual(trak["album"], "Test Album")
|
||||
|
||||
def test_track_artist(self):
|
||||
|
@ -110,15 +111,20 @@ class TestTrack(unittest.TestCase):
|
|||
trak = track.Track(1, test_tracks / "01 - Test Track.ogg", self.lib)
|
||||
state = trak.__getstate__()
|
||||
self.assertEqual(state["artist"], "Test Artist")
|
||||
self.assertEqual(state["album"], "Test Album")
|
||||
|
||||
tags.Artist["Test Artist"].tracks = [ 1 ]
|
||||
tags.Album[trak.artist, "Test Album"].tracks = [ 1 ]
|
||||
|
||||
trak.artist = None
|
||||
trak.album = None
|
||||
|
||||
trak.__setstate__(state)
|
||||
self.assertEqual(trak.artist, tags.Artist["Test Artist"])
|
||||
self.assertEqual(trak.album, tags.Album[trak.artist, "Test Album"])
|
||||
|
||||
self.assertEqual(tags.Artist["Test Artist"].tracks, [ trak ])
|
||||
self.assertEqual(tags.Album[trak.artist, "Test Album"].tracks, [ trak ])
|
||||
|
||||
def test_track_reset(self):
|
||||
track.TrackUpdated.register(1)
|
||||
|
|
|
@ -20,8 +20,8 @@ class Track:
|
|||
self.discnumber = meta.discnumber()
|
||||
self.tracknumber = meta.tracknumber()
|
||||
|
||||
self.album = meta.album()
|
||||
self.artist = tags.Artist.add(meta.artist(), self)
|
||||
self.album = tags.Album.add(self.artist, meta.album(), self)
|
||||
self.genre = meta.genres()
|
||||
self.year = meta.year()
|
||||
|
||||
|
@ -41,11 +41,13 @@ class Track:
|
|||
def __getstate__(self):
|
||||
state = self.__dict__.copy()
|
||||
state["artist"] = str(self.artist)
|
||||
state["album"] = str(self.album)
|
||||
return state
|
||||
|
||||
def __setstate__(self, state):
|
||||
self.__dict__.update(state)
|
||||
self.artist = tags.Artist.init_track(self.artist, self)
|
||||
self.album = tags.Album.init_track(self.artist, self.album, self)
|
||||
|
||||
def decade(self):
|
||||
return (self.year // 10) * 10
|
||||
|
|
Loading…
Reference in New Issue