From 45e0a8b44900ff97f7df113d6d5416c36cf9df26 Mon Sep 17 00:00:00 2001 From: nis130 Date: Sun, 10 Jan 2021 16:21:01 +0530 Subject: [PATCH 1/2] tracker-search.c : Fixed the folder search --- src/tracker/tracker-search.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/tracker/tracker-search.c b/src/tracker/tracker-search.c index ce062e3ab..913f74f36 100644 --- a/src/tracker/tracker-search.c +++ b/src/tracker/tracker-search.c @@ -1028,7 +1028,8 @@ get_folders (TrackerSparqlConnection *connection, query = g_strdup_printf ("SELECT ?u nie:isStoredAs(?u) " "WHERE { " " ?u a nfo:Folder ;" - " fts:match \"%s\" ." + " nie:isStoredAs ?url ." + " ?url fts:match \"%s\" ." " %s" "} " "ORDER BY ASC(nie:isStoredAs(?u)) " -- GitLab From 975ac04d061b7d2e022a1c3f56b213904b0e529b Mon Sep 17 00:00:00 2001 From: nis130 Date: Sun, 10 Jan 2021 16:33:54 +0530 Subject: [PATCH 2/2] cli.py, fixtures.py : Added tests added tests for tracker search --folders --- tests/functional-tests/cli.py | 12 ++++++++++++ tests/functional-tests/fixtures.py | 9 +++++++++ 2 files changed, 21 insertions(+) diff --git a/tests/functional-tests/cli.py b/tests/functional-tests/cli.py index 32fda7033..2153cfc17 100644 --- a/tests/functional-tests/cli.py +++ b/tests/functional-tests/cli.py @@ -44,6 +44,14 @@ class TestCli(fixtures.TrackerCommandLineTestCase): with self.await_document_inserted(target2): shutil.copy(file2, self.indexed_dir) + folder_name = "test-folder" + folder_path = pathlib.Path(os.path.join(self.indexed_dir, folder_name)) + with self.await_insert_dir(folder_path): + try: + os.mkdir(os.path.join(self.indexed_dir, folder_name)) + except OSError as error: + print(error) + # FIXME: the --all should NOT be needed. # See: https://gitlab.gnome.org/GNOME/tracker-miners/-/issues/116 output = self.run_cli( @@ -51,6 +59,10 @@ class TestCli(fixtures.TrackerCommandLineTestCase): self.assertIn(target1.as_uri(), output) self.assertNotIn(target2.as_uri(), output) + folder_output = self.run_cli( + ['tracker3', 'search', '--folders', 'test-monitored']) + self.assertIn(self.indexed_dir, folder_output) + self.assertNotIn(folder_path.as_uri(), folder_output) if __name__ == '__main__': fixtures.tracker_test_main() diff --git a/tests/functional-tests/fixtures.py b/tests/functional-tests/fixtures.py index 56ebbbf6f..a118cd17c 100644 --- a/tests/functional-tests/fixtures.py +++ b/tests/functional-tests/fixtures.py @@ -156,6 +156,15 @@ class TrackerMinerTest(ut.TestCase): return self.tracker.await_insert(DOCUMENTS_GRAPH, '; '.join(expected), timeout=cfg.AWAIT_TIMEOUT) + def await_insert_dir(self, path): + if isinstance(path, pathlib.Path): + url = path.as_uri() + else: + url = self.uri(path) + + expected = f'nie:isStoredAs <{url}>' + return self.tracker.await_insert(FILESYSTEM_GRAPH, expected, timeout=cfg.AWAIT_TIMEOUT) + def await_document_uri_change(self, resource_id, from_path, to_path): """Wraps await_update() context manager.""" from_url = self.uri(from_path) -- GitLab