summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSiegfried-Angel Gevatter Pujals <rainct@ubuntu.com>2009-06-29 17:05:53 +0200
committerSiegfried-Angel Gevatter Pujals <rainct@ubuntu.com>2009-06-29 17:05:53 +0200
commitfaa9d767c1dda0050f8e1b81d967919b09f0ec3a (patch)
tree36ca3dda23c51de26a27bf40f2f51307e12cbc06
parent5df0d2ed5de45fd85be689632123028368be6904 (diff)
downloadzeitgeist-faa9d767c1dda0050f8e1b81d967919b09f0ec3a.tar.gz
Add tag filtering in find_events and write a test case for it.
-rwxr-xr-xtest/engine-engine-test.py9
-rw-r--r--zeitgeist/engine/engine.py5
2 files changed, 13 insertions, 1 deletions
diff --git a/test/engine-engine-test.py b/test/engine-engine-test.py
index ebfc58f1..1c393ec9 100755
--- a/test/engine-engine-test.py
+++ b/test/engine-engine-test.py
@@ -350,6 +350,15 @@ class ZeitgeistEngineTest (unittest.TestCase):
[{"mimetypes": [u"image/jpg"], "bookmarked": False}])
self.assertEquals(len([x for x in result]), 1)
+ def testFindEventsWithTags(self):
+ self._init_with_various_events()
+ result1 = [x[1] for x in self.engine.find_events(0, 0, 0, True, False,
+ [{"tags": [u"files"]}])]
+ result2 = [x[1] for x in self.engine.find_events(0, 0, 0, True, False,
+ [{"tags": [u"files", u"examples"]}])]
+ self.assertEquals(result1, result2)
+ self.assertEquals(result1, [u"file:///tmp/files/example.png"])
+
def testGetTagsNameFilter(self):
self._init_with_various_events()
result = self.engine.get_tags(u"f%")
diff --git a/zeitgeist/engine/engine.py b/zeitgeist/engine/engine.py
index f697606f..1a9a673d 100644
--- a/zeitgeist/engine/engine.py
+++ b/zeitgeist/engine/engine.py
@@ -323,7 +323,10 @@ class ZeitgeistEngine(gobject.GObject):
filterset += [ "uri.value LIKE ? ESCAPE \"\\\"" ]
additional_args += [ filter["text_uri"] ]
if "tags" in filter:
- pass # tags...
+ for tag in filter["tags"]:
+ filterset += [ "(tags == \"%s\" OR tags LIKE \"%s, %%\" OR "
+ "tags LIKE \"%%, %s, %%\" OR tags LIKE \"%%, %s\")" \
+ % (tag, tag, tag, tag) ]
if "mimetypes" in filter:
condition = ' OR '.join(
['mimetype LIKE ? ESCAPE "\\"'] * len(filter["mimetypes"]))