db: Give Decades a find_year() function
And adjust the Year table and Track table to take a Decade as an argument. Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
4141ca211c
commit
90c6593921
|
@ -21,8 +21,7 @@ def make_fake_track(trackno, length, title, path, lib="/a/b/c", art="Test Artist
|
|||
alb = album.Table.find(art, alb)
|
||||
disk = disc.Table.find(alb, disk, subtitle)
|
||||
dec = decade.Table.find((yeer // 10) * 10)
|
||||
if (yeer := year.Table.lookup(yeer)) == None:
|
||||
yeer = year.Table.insert(dec, yeer)
|
||||
yeer = dec.find_year(yeer)
|
||||
return track.Table.insert(lib, art, alb, disk, dec, yeer, trackno,
|
||||
length, title, pathlib.Path(path))
|
||||
|
||||
|
|
|
@ -20,7 +20,10 @@ class Decade(playlist.ParentPlaylist):
|
|||
@GObject.Property
|
||||
def name(self): return f"{self._decade}s"
|
||||
|
||||
def find_year(self, yr): return self.find_child(yr)
|
||||
|
||||
def get_child_table(self): return year.Table
|
||||
def lookup_child(self, yr): return year.Table.lookup(yr)
|
||||
|
||||
|
||||
class DecadeTable(playlist.Model):
|
||||
|
|
|
@ -5,6 +5,9 @@ import unittest
|
|||
from gi.repository import GObject
|
||||
|
||||
class TestDecade(unittest.TestCase):
|
||||
def children_changed(self, decade, pos, rm, add):
|
||||
self.changed = (pos, rm, add)
|
||||
|
||||
def setUp(self):
|
||||
db.reset()
|
||||
|
||||
|
@ -19,6 +22,14 @@ class TestDecade(unittest.TestCase):
|
|||
self.assertEqual(decade._decade, 2020)
|
||||
self.assertEqual(decade.get_property("decade"), 2020)
|
||||
|
||||
def test_find_year(self):
|
||||
decade = db.decade.Table.insert(2020)
|
||||
decade.connect("children-changed", self.children_changed)
|
||||
|
||||
year = decade.find_year(2021)
|
||||
self.assertIsInstance(year, db.year.Year)
|
||||
self.assertEqual(self.changed, (0, 0, 1))
|
||||
|
||||
|
||||
class TestDecadeTable(unittest.TestCase):
|
||||
def setUp(self):
|
||||
|
|
|
@ -22,7 +22,7 @@ class TestTrackTable(unittest.TestCase):
|
|||
album = db.album.Table.find(artist, "Test Album")
|
||||
disc = db.disc.Table.find(album, 1, None)
|
||||
decade = db.decade.Table.find(2020)
|
||||
year = db.year.Table.insert(decade, 2021)
|
||||
year = decade.find_year(2021)
|
||||
track = db.track.Table.insert(library, artist, album, disc, decade, year,
|
||||
1, 1.234, "Test Title", pathlib.Path("/a/b/c/d.efg"))
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ class TestYear(unittest.TestCase):
|
|||
|
||||
def test_init(self):
|
||||
decade = db.decade.Table.find(2020)
|
||||
year = db.year.Table.insert(decade, 2021)
|
||||
year = decade.find_year(2021)
|
||||
self.assertIsInstance(year, db.playlist.Playlist)
|
||||
self.assertEqual(year.get_property("name"), "2021")
|
||||
self.assertEqual(year.get_property("year"), 2021)
|
||||
|
@ -31,7 +31,7 @@ class TestYearTable(unittest.TestCase):
|
|||
|
||||
def test_insert(self):
|
||||
decade = db.decade.Table.insert(2020)
|
||||
year = db.year.Table.insert(decade, 2021)
|
||||
year = decade.find_year(2021)
|
||||
|
||||
self.assertIsInstance(year, db.year.Year)
|
||||
self.assertEqual(year._year, 2021)
|
||||
|
@ -41,6 +41,6 @@ class TestYearTable(unittest.TestCase):
|
|||
|
||||
def test_lookup(self):
|
||||
decade = db.decade.Table.find(2020)
|
||||
year = db.year.Table.insert(decade, 2021)
|
||||
year = decade.find_year(2021)
|
||||
self.assertEqual(db.year.Table.lookup(2021), year)
|
||||
self.assertIsNone(db.year.Table.lookup(2022))
|
||||
|
|
|
@ -26,8 +26,7 @@ class FileTask(Task):
|
|||
album = db.album.Table.find(artist, meta.album())
|
||||
disc = db.disc.Table.find(album, meta.discnumber(), meta.discsubtitle())
|
||||
decade = db.decade.Table.find(meta.decade())
|
||||
if (year := db.year.Table.lookup(meta.year())) == None:
|
||||
year = db.year.Table.insert(decade, meta.year())
|
||||
year = decade.find_year(meta.year())
|
||||
track = db.track.Table.insert(self.library, artist, album, disc,
|
||||
decade, year, meta.tracknumber(),
|
||||
meta.length(), meta.title(),
|
||||
|
|
Loading…
Reference in New Issue