chiark / gitweb /
more tests
authorRichard Kettlewell <rjk@greenend.org.uk>
Sun, 16 Dec 2007 14:55:38 +0000 (14:55 +0000)
committerRichard Kettlewell <rjk@greenend.org.uk>
Sun, 16 Dec 2007 14:55:38 +0000 (14:55 +0000)
tests/files.py
tests/play.py

index 4765f7fdc978ebe41bf6cf331a4b9442cd14a3dd..69e98d4f9a6df494f49c2f05f5bed72978dd343d 100755 (executable)
@@ -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()
index 96cc2fd986d9d9be4a6d458d3e314bf49ccb9aec..92bb6649dfc5c248cd0f3f2d71616cbedf148600 100755 (executable)
@@ -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()