X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/213b4064bddea6137014dc4265d17d58b83ba7c4..b9bbb6c8bd8630fe4321045ce57174c4890bfa46:/tests/files.py diff --git a/tests/files.py b/tests/files.py index 4765f7f..984c6cc 100755 --- a/tests/files.py +++ b/tests/files.py @@ -1,7 +1,7 @@ #! /usr/bin/env python # # This file is part of DisOrder. -# Copyright (C) 2007 Richard Kettlewell +# Copyright (C) 2007, 2008 Richard Kettlewell # # 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 @@ -23,7 +23,36 @@ import dtest,time,disorder,sys def test(): """Check that the file listing comes out right""" dtest.start_daemon() + dtest.create_user() + dtest.rescan() 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 " and again to exercise cache" + 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" + print " and again to exercise cache" + 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()