db: Have Tracks remove themselves from Playlist Maps when deleted

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
Anna Schumaker 2021-08-23 11:32:59 -04:00
parent 0fd1069484
commit 952d70c282
2 changed files with 8 additions and 0 deletions

View File

@ -49,12 +49,17 @@ class TestTrackTable(unittest.TestCase):
def test_track_table_delete(self):
track = db.make_fake_track(1, 1.234, "Test Title", "/a/b/c/d.efg")
genre = db.genre.Table.find("Test Genre")
playlist = db.playlist.Table.find("Test Playlist")
db.genre.Map.insert(genre, track)
db.playlist.Map.insert(playlist, track)
db.playlist.TempMap.insert(playlist, track)
db.track.Table.delete(track)
self.assertIsNone(db.track.Table.lookup(pathlib.Path("/a/b/c/d.efg")))
self.assertEqual(db.genre.Map.lookup_tracks(genre), [ ])
self.assertEqual(db.playlist.Map.lookup_tracks(playlist), [ ])
self.assertEqual(db.playlist.TempMap.lookup_tracks(playlist), [ ])
def test_track_table_get(self):
track = db.make_fake_track(1, 1.234, "Test Title", "/a/b/c/d.efg")

View File

@ -119,7 +119,10 @@ class TrackTable(objects.Table):
def do_delete(self, track):
from . import genre
from . import playlist
genre.Map.delete_track(track)
playlist.Map.delete_track(track)
playlist.TempMap.delete_track(track)
return execute("DELETE FROM tracks WHERE trackid=?", [ int(track) ])
def do_get(self, rowid):