db: Give Artists knowledge about their Media
I also adjust how filtering Artists works so an Artist remains visible if one of its Media matches the query. Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
87606f8fac
commit
aeeee1417a
|
@ -101,7 +101,8 @@ class Table(playlist.Table):
|
|||
"""Search for artists matching the search text."""
|
||||
return self.sql("""SELECT artistid FROM album_artist_view
|
||||
WHERE CASEFOLD(artist) GLOB :glob
|
||||
OR CASEFOLD(album) GLOB :glob""", glob=glob)
|
||||
OR CASEFOLD(album) GLOB :glob
|
||||
OR CASEFOLD(medium) GLOB :glob""", glob=glob)
|
||||
|
||||
def do_sql_insert(self, name: str,
|
||||
mbid: str = "") -> sqlite3.Cursor | None:
|
||||
|
|
|
@ -171,10 +171,13 @@ class TestArtistTable(tests.util.TestCase):
|
|||
artist1 = self.table.create("Artist 1")
|
||||
artist2 = self.table.create("Artist 2")
|
||||
|
||||
artist1.add_album(self.sql.albums.create("Album 1", "Artist 1", "1"))
|
||||
album = self.sql.albums.create("Album 1", "Artist 1", "1")
|
||||
artist1.add_album(album)
|
||||
artist1.add_album(self.sql.albums.create("Album 2", "Artist 1", "2"))
|
||||
artist2.add_album(self.sql.albums.create("Album 3", "Artist 2", "3"))
|
||||
artist2.add_album(self.sql.albums.create("Album 4", "Artist 2", "4"))
|
||||
self.sql.media.create(album, "Medium 1", number=1)
|
||||
self.sql.media.create(album, "Medium 2", number=2)
|
||||
|
||||
self.table.filter("*1", now=True)
|
||||
self.assertSetEqual(self.table.get_filter().keys, {1})
|
||||
|
@ -184,6 +187,9 @@ class TestArtistTable(tests.util.TestCase):
|
|||
self.table.filter("*4", now=True)
|
||||
self.assertSetEqual(self.table.get_filter().keys, {2})
|
||||
|
||||
self.table.filter("medium*", now=True)
|
||||
self.assertSetEqual(self.table.get_filter().keys, {1})
|
||||
|
||||
def test_get_sort_key(self):
|
||||
"""Test the get_sort_key() function."""
|
||||
artist1 = self.table.create("Artist 1")
|
||||
|
|
Loading…
Reference in New Issue