To mimic how curds.trak.lookup() works, only in the library path itself. We also take this time to delete the curds/trak directory as nothing there is used anymore. Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
72 lines
2.2 KiB
Python
72 lines
2.2 KiB
Python
# Copyright 2019 (c) Anna Schumaker.
|
|
from .. import notify
|
|
from . import special
|
|
import os
|
|
import pathlib
|
|
import trackdb
|
|
import unittest
|
|
|
|
test_album = pathlib.Path("./trier/Test Library/Test Artist 01/Test Album 1")
|
|
|
|
class TestUpNextPlaylist(unittest.TestCase):
|
|
def setUp(self):
|
|
trackdb.reset()
|
|
notify.register("remove-track", self.on_remove)
|
|
self.cb_plist = None
|
|
self.cb_track = None
|
|
self.cb_index = None
|
|
self.lib = trackdb.add_path(test_album)
|
|
|
|
def tearDown(self):
|
|
notify.cancel("remove-track", self.on_remove)
|
|
|
|
def on_remove(self, plist, track, index):
|
|
self.cb_plist = plist
|
|
self.cb_track = track
|
|
self.cb_index = index
|
|
|
|
def add_tracks(self, plist):
|
|
tracks = [ ]
|
|
for i in range(1, 4,):
|
|
ret = self.lib.add_track(f"0{i} - Test Track 0{i}.ogg")
|
|
tracks.append(ret)
|
|
plist.add(ret)
|
|
return tracks
|
|
|
|
def test_up_next_playlist(self):
|
|
plist = special.UpNextPlaylist()
|
|
self.assertEqual(plist.name, "Up Next")
|
|
self.assertEqual(plist.icon, "edit-redo")
|
|
self.assertEqual(plist.sort_order, [ ])
|
|
self.assertFalse(plist.can_loop)
|
|
self.assertTrue( plist.can_random)
|
|
|
|
def test_up_next_next(self):
|
|
plist = special.UpNextPlaylist()
|
|
tracks = self.add_tracks(plist)
|
|
self.assertEqual(len(plist), 3)
|
|
|
|
track = plist.next()
|
|
self.assertEqual(len(plist), 2)
|
|
self.assertEqual(plist.current, -1)
|
|
self.assertEqual(self.cb_plist, plist)
|
|
self.assertEqual(self.cb_track, tracks[0])
|
|
self.assertEqual(self.cb_index, 0)
|
|
|
|
track = plist.next()
|
|
self.assertEqual(len(plist), 1)
|
|
self.assertEqual(plist.current, -1)
|
|
self.assertEqual(self.cb_plist, plist)
|
|
self.assertEqual(self.cb_track, tracks[1])
|
|
self.assertEqual(self.cb_index, 0)
|
|
|
|
plist.random = True
|
|
plist.sort_order = [ 42 ]
|
|
|
|
track = plist.next()
|
|
self.assertEqual(len(plist), 0)
|
|
self.assertEqual(plist.current, -1)
|
|
self.assertEqual(self.cb_plist, plist)
|
|
self.assertEqual(self.cb_track, tracks[2])
|
|
self.assertEqual(self.cb_index, 0)
|