From 8f26cf9fee93e897f907ad423176034b5c570c81 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Wed, 8 Dec 2021 15:08:33 -0500 Subject: [PATCH] db: Fix random next_track() on playlists with only one track Signed-off-by: Anna Schumaker --- db/playlist.py | 2 +- db/test_playlist.py | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/db/playlist.py b/db/playlist.py index ec5461b..e26bafc 100644 --- a/db/playlist.py +++ b/db/playlist.py @@ -70,7 +70,7 @@ class Playlist(GObject.GObject): def next_track(self): n = self.get_n_tracks() - if self.random and n > 0: + if self.random and n > 1: self.current += random.randint(1, int((3*n)/4)) else: self.current += 1 diff --git a/db/test_playlist.py b/db/test_playlist.py index 310c33d..b6ba39d 100644 --- a/db/test_playlist.py +++ b/db/test_playlist.py @@ -205,10 +205,14 @@ class TestPlaylist(unittest.TestCase): self.assertEqual(plist.get_property("current"), -1) plist.add_track(db.make_fake_track(1, 1, "Track 1", "/a/b/c/1.ogg")) + self.assertEqual(plist.next_track(), plist.get_track(0)) + self.assertEqual(plist.get_property("current"), 0) + plist.add_track(db.make_fake_track(2, 2, "Track 2", "/a/b/c/2.ogg")) plist.add_track(db.make_fake_track(3, 3, "Track 3", "/a/b/c/3.ogg")) random.seed(20210318) + plist.current = -1 self.assertEqual(plist.next_track(), plist.get_track(1)) self.assertEqual(plist.next_track(), plist.get_track(2)) self.assertEqual(plist.next_track(), plist.get_track(0))