db: Don't notify if the active-playlist doesn't change
This lets us skip a handful of database calls if we detect that we're setting the active playlist to the same value. Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
59fb7d12f3
commit
57dd2c280e
|
@ -82,6 +82,8 @@ class Connection(connection.Connection):
|
|||
|
||||
def set_active_playlist(self, plist: playlist.Playlist) -> None:
|
||||
"""Set the currently active playlist."""
|
||||
if self.active_playlist == plist:
|
||||
return
|
||||
if self.active_playlist is not None:
|
||||
self.active_playlist.active = False
|
||||
|
||||
|
|
|
@ -114,6 +114,11 @@ class TestConnection(tests.util.TestCase):
|
|||
self.assertFalse(plist1.active)
|
||||
self.assertTrue(plist2.active)
|
||||
|
||||
notify = unittest.mock.Mock()
|
||||
self.sql.connect("notify::active-playlist", notify)
|
||||
self.sql.set_active_playlist(plist2)
|
||||
notify.assert_not_called()
|
||||
|
||||
self.sql.set_active_playlist(None)
|
||||
self.assertIsNone(self.sql.active_playlist)
|
||||
self.assertFalse(plist2.active)
|
||||
|
|
Loading…
Reference in New Issue