From be603af9ea5fa6002931f0f49f74a6403053aa1e Mon Sep 17 00:00:00 2001 Message-Id: From: Mark Wooding Date: Sun, 16 Dec 2007 14:55:38 +0000 Subject: [PATCH] more tests Organization: Straylight/Edgeware From: Richard Kettlewell --- tests/files.py | 18 ++++++++++++++++++ tests/play.py | 7 +++++++ 2 files changed, 25 insertions(+) diff --git a/tests/files.py b/tests/files.py index 4765f7f..69e98d4 100755 --- a/tests/files.py +++ b/tests/files.py @@ -24,6 +24,24 @@ def test(): """Check that the file listing comes out right""" dtest.start_daemon() assert dtest.check_files() == 0, "dtest.check_files" + print " checking regexp file listing" + c = disorder.client() + f = c.files("%s/Joe Bloggs/First Album" % dtest.tracks, + "second") + assert len(f) == 1, "checking for one match" + assert f[0] == "%s/Joe Bloggs/First Album/02:Second track.ogg" % dtest.tracks + print " checking unicode regexp file listing" + f = c.files("%s/Joe Bloggs/First Album" % dtest.tracks, + "first") + assert len(f) == 0, "checking for 0 matches" + # This is rather unsatisfactory but it is the current behavior. We could + # for instance go to NFD for regexp matching but we'd have to do the same + # to the regexp, including replacing single characters with (possibly + # bracketed) decomposed forms. Really the answer has to be a more + # Unicode-aware regexp library. + f = c.files("%s/Joe Bloggs/First Album" % dtest.tracks, + "fi\\p{Mn}*rst") + assert len(f) == 0, "checking for 0 matches" if __name__ == '__main__': dtest.run() diff --git a/tests/play.py b/tests/play.py index 96cc2fd..92bb664 100755 --- a/tests/play.py +++ b/tests/play.py @@ -51,6 +51,8 @@ def test(): 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'] @@ -63,6 +65,11 @@ def test(): 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() -- [mdw]