X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/05438e8999dbc0edc4cc82c3df4cc5efdedb777e..1a208f3f41946d9aa3477570d8053dfd33845c31:/tests/play.py diff --git a/tests/play.py b/tests/play.py index c298ce5..1703d1b 100755 --- a/tests/play.py +++ b/tests/play.py @@ -1,22 +1,20 @@ #! /usr/bin/env python # # This file is part of DisOrder. -# Copyright (C) 2007, 2008 Richard Kettlewell +# Copyright (C) 2007-2009 Richard Kettlewell # -# This program is free software; you can redistribute it and/or modify +# This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 -# USA +# along with this program. If not, see . # import dtest,time,disorder,re,sys @@ -29,6 +27,8 @@ def test(): c.random_disable() assert c.random_enabled() == False track = u"%s/Joe Bloggs/First Album/02:Second track.ogg" % dtest.tracks + track2 = u"%s/Joe Bloggs/First Album/04:Fourth track.ogg" % dtest.tracks + track3 = u"%s/Joe Bloggs/First Album/05:Fifth track.ogg" % dtest.tracks print " adding track to queue" c.disable() assert c.enabled() == False @@ -64,6 +64,55 @@ def test(): t = ts[0] assert t['submitter'] == u'fred', "check recent entry submitter" + print " ensuring queue is clear" + c.disable() + while c.playing() is not None: + time.sleep(1) + q = c.queue() + for qe in q: + c.remove(qe["id"]) + + print " testing playafter" + print " adding to empty queue" + c.playafter(None, [track]) + q = c.queue() + print '\n'.join(map(lambda n: "%d: %s" % (n, q[n]["track"]), + range(0, len(q)))) + assert len(q) == 1 + assert q[0]['track'] == track + print " insert at start of queue" + c.playafter(None, [track2]) + q = c.queue() + print '\n'.join(map(lambda n: "%d: %s" % (n, q[n]["track"]), + range(0, len(q)))) + assert len(q) == 2 + assert q[0]['track'] == track2 + assert q[1]['track'] == track + print " insert in middle of queue" + c.playafter(q[0]['id'], [track3]) + q = c.queue() + print '\n'.join(map(lambda n: "%d: %s" % (n, q[n]["track"]), + range(0, len(q)))) + assert len(q) == 3 + assert q[0]['track'] == track2 + assert q[1]['track'] == track3 + assert q[2]['track'] == track + print " insert multiple tracks at end of queue" + c.playafter(q[2]['id'], [track2, track]) + q = c.queue() + print '\n'.join(map(lambda n: "%d: %s" % (n, q[n]["track"]), + range(0, len(q)))) + assert len(q) == 5 + assert q[0]['track'] == track2 + assert q[1]['track'] == track3 + assert q[2]['track'] == track + assert q[3]['track'] == track2 + assert q[4]['track'] == track + + print " clearing queue" + for qe in q: + c.remove(qe["id"]) + print " testing scratches" retry = False scratchlimit = 5