diff options
author | Martin Kampas <martin.kampas+gnomebugs@ubedi.net> | 2014-02-24 16:21:17 +0000 |
---|---|---|
committer | Martyn Russell <martyn@lanedo.com> | 2014-02-24 16:31:32 +0000 |
commit | 853eb94d78aa269b3b1024c138387ead0c601080 (patch) | |
tree | 6848e944f0dfd109819feca9c4a992b7b5022a2c /tests/functional-tests | |
parent | 98781aa015336d6a3542625857e4221c54a52734 (diff) | |
download | tracker-853eb94d78aa269b3b1024c138387ead0c601080.tar.gz |
functional-tests: Use GraphUpdated signal from store, not miner-fs Idle status
The tracker_miner_fs_wait_for_idle() call is used to detect miner operation
has completed. It returns when miner's status changes to "Idle" (or on
timeout). Unfortunately at the time miner goes idle it is not guaranteed the
data are already in store - and the related test fails.
A better way is to listen to GraphUpdated signal sent by store and wait until
the desired resource is announced beng added or removed.
Depends on tracker-tests-allow-reuse-graph-updated-signal-handling.patch.
Diffstat (limited to 'tests/functional-tests')
-rwxr-xr-x | tests/functional-tests/310-fts-indexing.py | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/tests/functional-tests/310-fts-indexing.py b/tests/functional-tests/310-fts-indexing.py index 0093d4c91..99db45d1c 100755 --- a/tests/functional-tests/310-fts-indexing.py +++ b/tests/functional-tests/310-fts-indexing.py @@ -29,6 +29,7 @@ the text contents are updated accordingly in the indexes. import os import shutil import locale +import time import unittest2 as ut from common.utils.helpers import log @@ -40,9 +41,13 @@ class CommonMinerFTS (CommonTrackerMinerTest): Superclass to share methods. Shouldn't be run by itself. """ def setUp (self): + self.tracker.reset_graph_updates_tracking () self.testfile = "test-monitored/miner-fts-test.txt" if os.path.exists (path (self.testfile)): + id = self._query_id (uri (self.testfile)) os.remove (path (self.testfile)) + self.tracker.await_resource_deleted (id) + self.tracker.reset_graph_updates_tracking () # Shouldn't we wait here for the miner to idle? (it works without it) def tearDown (self): @@ -54,7 +59,9 @@ class CommonMinerFTS (CommonTrackerMinerTest): f = open (path (self.testfile), "w") f.write (text) f.close () - self.system.tracker_miner_fs_wait_for_idle () + self.tracker.await_resource_inserted (rdf_class = 'nfo:Document', + url = uri (self.testfile)) + self.tracker.reset_graph_updates_tracking () def search_word (self, word): """ @@ -83,6 +90,11 @@ class CommonMinerFTS (CommonTrackerMinerTest): self.assertEquals (len (results), 1) self.assertIn ( uri (self.testfile), results) + def _query_id (self, uri): + query = "SELECT tracker:id(?urn) WHERE { ?urn nie:url \"%s\". }" % uri + result = self.tracker.query (query) + assert len (result) == 1 + return int (result[0][0]) class MinerFTSBasicTest (CommonMinerFTS): @@ -176,8 +188,9 @@ class MinerFTSFileOperationsTest (CommonMinerFTS): TEXT = "automobile is red and big and whatnot" self.basic_test (TEXT, "automobile") + id = self._query_id (uri (self.testfile)) os.remove ( path (self.testfile)) - self.system.tracker_miner_fs_wait_for_idle () + self.tracker.await_resource_deleted (id) results = self.search_word ("automobile") self.assertEquals (len (results), 0) @@ -201,6 +214,7 @@ class MinerFTSFileOperationsTest (CommonMinerFTS): self.basic_test (TEXT, "automobile") self.set_text ("airplane is blue and small and wonderful") + results = self.search_word ("automobile") self.assertEquals (len (results), 0) @@ -245,12 +259,15 @@ class MinerFTSFileOperationsTest (CommonMinerFTS): TEST_16_DEST = "test-monitored/fts-indexing-text-16.txt" self.__recreate_file (path (TEST_16_SOURCE), TEXT) + # the file is supposed to be ignored by tracker, so there is no notification.. + time.sleep (5) results = self.search_word ("airplane") self.assertEquals (len (results), 0) shutil.copyfile ( path (TEST_16_SOURCE), path (TEST_16_DEST)) - self.system.tracker_miner_fs_wait_for_idle () + self.tracker.await_resource_inserted (rdf_class = 'nfo:Document', + url = uri (TEST_16_DEST)) results = self.search_word ("airplane") self.assertEquals (len (results), 1) |