From 69f5742867b751899dd3241aa09d60ae70b9dfc8 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Mon, 23 Aug 2021 11:17:44 -0400 Subject: [PATCH] db: Have Tracks remove themselves from the GenreMap when deleted Signed-off-by: Anna Schumaker --- db/test_track.py | 5 +++++ db/track.py | 2 ++ 2 files changed, 7 insertions(+) diff --git a/db/test_track.py b/db/test_track.py index 3f583d4..7d2c79f 100644 --- a/db/test_track.py +++ b/db/test_track.py @@ -48,8 +48,13 @@ 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") + + db.genre.Map.insert(genre, 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), [ ]) def test_track_table_get(self): track = db.make_fake_track(1, 1.234, "Test Title", "/a/b/c/d.efg") diff --git a/db/track.py b/db/track.py index f8ece02..7d0de92 100644 --- a/db/track.py +++ b/db/track.py @@ -118,6 +118,8 @@ class TrackTable(objects.Table): int(year.decade), int(year), number, length, title, str(path) ]) def do_delete(self, track): + from . import genre + genre.Map.delete_track(track) return execute("DELETE FROM tracks WHERE trackid=?", [ int(track) ]) def do_get(self, rowid):