From 5e13cce5010abb8ec81e53a29f2e8490c601dc0e Mon Sep 17 00:00:00 2001
From: Xavier Claessens <xavier.claessens@collabora.com>
Date: Tue, 8 Sep 2015 09:26:09 -0400
Subject: [PATCH] tracker: make is_indexed and is_not_indexed raise exception
 instead

Summary:
They are now assert_indexed and assert_not_indexer. This provides more
useful backtrace if an error occures.

Reviewers: smcv, pwith

Differential Revision: https://phabricator.apertis.org/D395
---
 tracker/automated/test-tracker.py       |  4 ++--
 tracker/common.py                       | 12 ++++++++----
 tracker/manual/test-removable-device.py |  2 +-
 3 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/tracker/automated/test-tracker.py b/tracker/automated/test-tracker.py
index 0c0de4d..675f02e 100755
--- a/tracker/automated/test-tracker.py
+++ b/tracker/automated/test-tracker.py
@@ -50,11 +50,11 @@ class TrackerTest(unittest.TestCase):
 
     def assert_indexed(self, filename, extra=None):
         uri = 'file://%s/%s' % (self.homedir, filename)
-        self.assertTrue(self.indexer.is_indexed(uri, extra))
+        self.indexer.assert_indexed(uri, extra)
 
     def assert_not_indexed(self, filename):
         uri = 'file://%s/%s' % (self.homedir, filename)
-        self.assertTrue(self.indexer.is_not_indexed(uri))
+        self.indexer.assert_not_indexed(uri)
 
     def tracker_inital_tests(self):
         playable_query = '?urn bosch:playable true . '
diff --git a/tracker/common.py b/tracker/common.py
index 052025d..c8bce6f 100644
--- a/tracker/common.py
+++ b/tracker/common.py
@@ -110,7 +110,7 @@ class TrackerIndexer():
         self.wait_files = True
         self.loop.run()
 
-    def is_indexed(self, uri, extra=None):
+    def assert_indexed(self, uri, extra=None):
         query = ('select ?urn where { '
                  '  ?urn nie:url "%s" ; '
                  '  tracker:available true . ') % (uri)
@@ -120,9 +120,13 @@ class TrackerIndexer():
 
         # Must have one and only one result
         cursor = self.conn.query(query, None)
-        return cursor.next(None) and not cursor.next(None)
+        if not cursor.next(None):
+            raise Exception("Query '%s' returned no result" % query)
+        if cursor.next(None):
+            raise Exception("Query '%s' returned more than one result" % query)
 
-    def is_not_indexed(self, uri):
+    def assert_not_indexed(self, uri):
         query = ('select ?urn where { ?urn nie:url "%s" }') % (uri)
         cursor = self.conn.query(query, None)
-        return not cursor.next(None)
+        if cursor.next(None):
+            raise Exception("Query '%s' returned results" % query)
diff --git a/tracker/manual/test-removable-device.py b/tracker/manual/test-removable-device.py
index ce888d8..3808d63 100755
--- a/tracker/manual/test-removable-device.py
+++ b/tracker/manual/test-removable-device.py
@@ -36,7 +36,7 @@ class TestRemovableDevice(unittest.TestCase):
 
     def assert_indexed(self, filename, extra=None):
         uri = 'file://%s/%s' % (self.path, filename)
-        self.assertTrue(self.indexer.is_indexed(uri, extra))
+        self.indexer.assert_indexed(uri, extra)
 
     def test_removable_device(self):
         print('Please insert storage ...')
-- 
GitLab