ensure tests avoid user config!
[disorder] / tests / dump.py
index d308b84..2db1505 100755 (executable)
@@ -32,6 +32,20 @@ def test():
     print "setting a global pref"
     c.setglobal("foo", "before");
     assert c.getglobal("foo") == "before", "checking global foo=before"
     print "setting a global pref"
     c.setglobal("foo", "before");
     assert c.getglobal("foo") == "before", "checking global foo=before"
+    print "adding a tag"
+    # Exercise the tags-changed code
+    c.set(track, "tags", "first tag, another tag")
+    assert dtest.lists_have_same_contents(c.tags(),
+                                          [u"another tag", u"first tag"]),\
+           "checking tag list(1)"
+    c.set(track, "tags", "wibble, another tag")
+    assert dtest.lists_have_same_contents(c.tags(),
+                                          [u"another tag", u"wibble"]),\
+           "checking tag list(2)"
+    print "checking track appears in tag search"
+    tracks = c.search(["tag:wibble"])
+    assert len(tracks) == 1, "checking there is exactly one search result"
+    assert tracks[0] == track, "checking for right search result"
     print "dumping database"
     print dtest.command(["disorder-dump", "--config", disorder._configfile,
                          "--dump", dump])
     print "dumping database"
     print dtest.command(["disorder-dump", "--config", disorder._configfile,
                          "--dump", dump])
@@ -59,6 +73,13 @@ def test():
     assert c.get(track, "bar") is None, "checking fresh track pref has gone"
     print "checking fresh global pref"
     assert c.getglobal("bar") is None, "checking fresh global pref has gone"
     assert c.get(track, "bar") is None, "checking fresh track pref has gone"
     print "checking fresh global pref"
     assert c.getglobal("bar") is None, "checking fresh global pref has gone"
+    print "checking tag search still works"
+    tracks = c.search(["tag:wibble"])
+    assert len(tracks) == 1, "checking there is exactly one search result"
+    assert tracks[0] == track, "checking for right search result"
+    assert dtest.lists_have_same_contents(c.tags(),
+                                          [u"another tag", u"wibble"]),\
+           "checking tag list(3)"
 
 if __name__ == '__main__':
     dtest.run()
 
 if __name__ == '__main__':
     dtest.run()