db: Make it easy to know if we can delete tracks from playlists
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
6913cf992d
commit
574d03bad6
|
@ -16,6 +16,7 @@ class Playlist(GObject.GObject):
|
|||
def delete(self): raise NotImplementedError
|
||||
|
||||
def has_children(self): return False
|
||||
def can_add_remove_tracks(self): return False
|
||||
|
||||
def get_n_tracks(self):
|
||||
cur = sql.execute(f"SELECT COUNT(*) FROM tracks "
|
||||
|
@ -154,6 +155,8 @@ class MappedPlaylist(Playlist):
|
|||
@GObject.Property
|
||||
def map_table(self): return self._map_table
|
||||
|
||||
def can_add_remove_tracks(self): return self._map_table == "playlist_map"
|
||||
|
||||
def add_track(self, track):
|
||||
res = sql.execute(f"INSERT OR IGNORE INTO {self.map_table} "
|
||||
f"({self.rowkey}, trackid) VALUES (?, ?)",
|
||||
|
|
|
@ -23,6 +23,7 @@ class TestPlaylist(unittest.TestCase):
|
|||
|
||||
self.assertIsInstance(plist, GObject.GObject)
|
||||
self.assertFalse(plist.has_children())
|
||||
self.assertFalse(plist.can_add_remove_tracks())
|
||||
|
||||
self.assertEqual(plist._rowid, 1)
|
||||
self.assertEqual(plist._rowkey, "testid")
|
||||
|
|
|
@ -80,6 +80,7 @@ class TestFavorites(unittest.TestCase):
|
|||
self.assertEqual(favorites.icon_name, "emmental-favorites")
|
||||
self.assertEqual(favorites.map_table, "playlist_map")
|
||||
self.assertFalse(favorites.plist_state.loop)
|
||||
self.assertTrue(favorites.can_add_remove_tracks())
|
||||
|
||||
def test_add_remove_track(self):
|
||||
favorites = db.user.Table.find("Favorites")
|
||||
|
@ -121,6 +122,7 @@ class TestNewTracks(unittest.TestCase):
|
|||
self.assertEqual(new.icon_name, "starred")
|
||||
self.assertEqual(new.map_table, "temp_playlist_map")
|
||||
self.assertFalse(new.plist_state.loop)
|
||||
self.assertFalse(new.can_add_remove_tracks())
|
||||
|
||||
def test_add_remove_track(self):
|
||||
new = db.user.Table.find("New Tracks")
|
||||
|
@ -161,6 +163,7 @@ class TestPrevious(unittest.TestCase):
|
|||
self.assertEqual(previous.map_table, "temp_playlist_map")
|
||||
self.assertEqual(previous.plist_state.sort, [ "temp_playlist_map.rowid DESC" ])
|
||||
self.assertFalse(previous.plist_state.loop)
|
||||
self.assertFalse(previous.can_add_remove_tracks())
|
||||
|
||||
def test_add_remove_track(self):
|
||||
previous = db.user.Table.find("Previous")
|
||||
|
@ -255,6 +258,7 @@ class TestQueuedTracks(unittest.TestCase):
|
|||
self.assertEqual(queued.map_table, "playlist_map")
|
||||
self.assertEqual(queued.plist_state.sort, [ "playlist_map.rowid ASC" ])
|
||||
self.assertFalse(queued.plist_state.loop)
|
||||
self.assertTrue(queued.can_add_remove_tracks())
|
||||
|
||||
def test_add_remove_track(self):
|
||||
queued = db.user.Table.find("Queued Tracks")
|
||||
|
@ -310,6 +314,7 @@ class TestUserPlaylist(unittest.TestCase):
|
|||
self.assertEqual(plist.icon_name, "audio-x-generic")
|
||||
self.assertEqual(plist.map_table, "playlist_map")
|
||||
self.assertFalse(plist.plist_state.loop)
|
||||
self.assertTrue(plist.can_add_remove_tracks())
|
||||
|
||||
def test_delete(self):
|
||||
track = db.make_fake_track(1, 1, "Test Track", "/a/b/c/1.ogg")
|
||||
|
|
Loading…
Reference in New Issue