db: Give the tracks table a track-played signal
I'm going to need this in ListenBrainz so we can submit the played Track. Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
d373c33283
commit
eada937b7a
|
@ -270,9 +270,14 @@ class Table(table.Table):
|
|||
self.sql.playlists.most_played.reload_tracks(idle=True)
|
||||
self.sql.playlists.queued.remove_track(track)
|
||||
self.sql.playlists.unplayed.remove_track(track)
|
||||
self.emit("track-played", track)
|
||||
|
||||
self.sql.commit()
|
||||
|
||||
@GObject.Signal(arg_types=(Track,))
|
||||
def track_played(self, track: Track) -> None:
|
||||
"""Signal that a Track was played."""
|
||||
|
||||
|
||||
class TrackidSet(GObject.GObject):
|
||||
"""Manage a set of Track IDs."""
|
||||
|
|
|
@ -534,6 +534,8 @@ class TestTrackTable(tests.util.TestCase):
|
|||
"""Test marking that a Track has stopped playback."""
|
||||
track = self.tracks.create(self.library, pathlib.Path("/a/b/1.ogg"),
|
||||
self.medium, self.year, length=10)
|
||||
track_played = unittest.mock.Mock()
|
||||
self.tracks.connect("track-played", track_played)
|
||||
|
||||
track.start()
|
||||
with unittest.mock.patch.object(self.sql, "commit",
|
||||
|
@ -552,6 +554,7 @@ class TestTrackTable(tests.util.TestCase):
|
|||
self.playlists.most_played.reload_tracks.assert_not_called()
|
||||
self.playlists.queued.remove_track.assert_not_called()
|
||||
self.playlists.unplayed.remove_track.assert_not_called()
|
||||
track_played.assert_not_called()
|
||||
|
||||
track.start()
|
||||
with unittest.mock.patch.object(self.sql, "commit",
|
||||
|
@ -569,11 +572,14 @@ class TestTrackTable(tests.util.TestCase):
|
|||
self.playlists.most_played.reload_tracks.assert_called()
|
||||
self.playlists.queued.remove_track.assert_called_with(track)
|
||||
self.playlists.unplayed.remove_track.assert_called_with(track)
|
||||
track_played.assert_called_with(self.tracks, track)
|
||||
|
||||
def test_stop_restarted_track(self):
|
||||
"""Test marking that a restarted Track has stopped playback."""
|
||||
track = self.tracks.create(self.library, pathlib.Path("/a/b/1.ogg"),
|
||||
self.medium, self.year, length=10)
|
||||
track_played = unittest.mock.Mock()
|
||||
self.tracks.connect("track-played", track_played)
|
||||
|
||||
track.restart()
|
||||
track.stop(3)
|
||||
|
@ -591,6 +597,7 @@ class TestTrackTable(tests.util.TestCase):
|
|||
self.playlists.most_played.reload_tracks.assert_not_called()
|
||||
self.playlists.queued.remove_track.assert_not_called()
|
||||
self.playlists.unplayed.remove_track.assert_not_called()
|
||||
track_played.assert_not_called()
|
||||
|
||||
track.restart()
|
||||
restarted = track.restarted
|
||||
|
@ -607,6 +614,7 @@ class TestTrackTable(tests.util.TestCase):
|
|||
self.playlists.most_played.reload_tracks.assert_called_with(idle=True)
|
||||
self.playlists.queued.remove_track.assert_called_with(track)
|
||||
self.playlists.unplayed.remove_track.assert_called_with(track)
|
||||
track_played.assert_called_with(self.tracks, track)
|
||||
|
||||
def test_current_track(self):
|
||||
"""Test the current-track and have-current-track properties."""
|
||||
|
|
Loading…
Reference in New Issue