X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/546c797889cd69a4a4ca8a120726caec6c17406c..95ceb9eae3ff08162d7e17be5ce82090d78cb269:/tests/play.py diff --git a/tests/play.py b/tests/play.py index cbbb0ec..92bb664 100755 --- a/tests/play.py +++ b/tests/play.py @@ -27,14 +27,14 @@ def test(): track = u"%s/Joe Bloggs/First Album/02:Second track.ogg" % dtest.tracks print "adding track to queue" c.play(track) - print "checking track turned up in queue" + print " checking track turned up in queue" q = c.queue() ts = filter(lambda t: t['track'] == track and 'submitter' in t, q) - assert len(ts) == 1 + assert len(ts) == 1, "checking track appears exactly once in queue" t = ts[0] assert t['submitter'] == u'fred', "check queue submitter" i = t['id'] - print "waiting for track" + print " waiting for track" p = c.playing() r = c.recent() while not((p is not None and p['id'] == i) @@ -42,14 +42,34 @@ def test(): time.sleep(1) p = c.playing() r = c.recent() - print "checking track turned up in recent list" - q = c.recent() - ts = filter(lambda t: t['track'] == track and 'submitter' in t, q) - assert len(ts) == 1 + print " checking track turned up in recent list" + while (p is not None and p['id'] == i): + time.sleep(1) + p = c.playing() + r = c.recent() + ts = filter(lambda t: t['track'] == track and 'submitter' in t, r) + assert len(ts) == 1, "check track appears exactly once in recent" t = ts[0] assert t['submitter'] == u'fred', "check recent entry submitter" - - + print " disabling play" + c.disable() + print " scratching current track" + p = c.playing() + i = p['id'] + c.scratch(i) + print " checking scratched track turned up in recent list" + while (p is not None and p['id'] == i): + time.sleep(1) + p = c.playing() + r = c.recent() + ts = filter(lambda t: t['id'] == i, r) + assert len(ts) == 1, "check scratched track appears exactly once in recent" + assert ts[0]['state'] == 'scratched', "checking track scratched" + print " waiting for scratch to complete" + while (p is not None and p['state'] == 'isscratch'): + time.sleep(1) + p = c.playing() + assert p is None, "checking nothing is playing" if __name__ == '__main__': dtest.run()