From dcc93ed01aada1a36e2aa04573b38adbd6fb7eb1 Mon Sep 17 00:00:00 2001 From: Xavier Claessens <xavier.claessens@collabora.com> Date: Tue, 8 Sep 2015 09:50:34 -0400 Subject: [PATCH] tracker: check all files are indexed in manual test Reviewers: smcv, pwith Differential Revision: https://phabricator.apertis.org/D397 --- tracker/automated/test-tracker.py | 43 ++++--------------------- tracker/common.py | 41 ++++++++++++++++++++--- tracker/manual/test-removable-device.py | 7 +--- 3 files changed, 43 insertions(+), 48 deletions(-) diff --git a/tracker/automated/test-tracker.py b/tracker/automated/test-tracker.py index bee6261..c540e61 100755 --- a/tracker/automated/test-tracker.py +++ b/tracker/automated/test-tracker.py @@ -48,39 +48,8 @@ class TrackerTest(unittest.TestCase): self.homedir) self.assertFalse(os.path.isfile(path)) - def assert_indexed(self, filename, extra=None): - uri = 'file://%s/%s' % (self.homedir, filename) - self.indexer.assert_indexed(uri, extra) - - def assert_not_indexed(self, filename): - uri = 'file://%s/%s' % (self.homedir, filename) - self.indexer.assert_not_indexed(uri) - def tracker_initial_tests(self): - playable_query = '?urn bosch:playable true . ' - album_query = ('?urn nmm:musicAlbum ?album . ' - '?album nmm:albumTitle "GNOME Audio" . ') - performer_query = ('?urn nmm:performer ?performer . ' - '?performer nmm:artistName "Conrad Parker" . ') - title_query = '?urn nie:title "GNOME Generic Sound" . ' - audio_query = album_query + performer_query + title_query - self.assert_indexed('Music/generic.mp3', audio_query) - self.assert_indexed('Music/generic.flac', audio_query + playable_query) - self.assert_indexed('Music/generic-no-artwork.mp3', audio_query) - self.assert_indexed('Music/generic.oga', audio_query) - self.assert_indexed('Music/generic.wav', playable_query) - self.assert_indexed('Documents/lorem_presentation.odp') - self.assert_indexed('Documents/lorem_spreadsheet.ods') - self.assert_indexed('Documents/lorem_text.txt') - self.assert_indexed('Documents/more_lorem_ipsum.odt') - self.assert_indexed('Pictures/' + LONG_JPEG_NAME) - self.assert_indexed('Pictures/collabora-logo-big.png') - self.assert_indexed('Music/Generic_Sounds.pls', - '?urn nfo:entryCounter 3') - self.assert_indexed('Music/Ghosts.pls', '?urn nfo:entryCounter 38') - self.assert_indexed('Music/Ghosts.m3u', '?urn nfo:entryCounter 38') - self.assert_indexed('Videos/big_buck_bunny_smaller.ogv', - playable_query) + self.indexer.assert_all_indexed(self.homedir) def tracker_update_tests(self): # Create a new file and assert it gets indexed @@ -88,20 +57,20 @@ class TrackerTest(unittest.TestCase): with open(filename, 'w') as f: f.write('something') self.indexer.wait(True) - self.assert_indexed('Documents/something.txt', - '?urn nie:plainTextContent "something"') + self.indexer.assert_indexed( + filename, '?urn nie:plainTextContent "something"') # Modify the file should re-index it with open(filename, 'w') as f: f.write('something else') self.indexer.wait(True) - self.assert_indexed('Documents/something.txt', - '?urn nie:plainTextContent "something else"') + self.indexer.assert_indexed( + filename, '?urn nie:plainTextContent "something else"') # Delete file and assert it's not indexed anymore os.remove(filename) self.indexer.wait(False) - self.assert_not_indexed('Documents/something.txt') + self.indexer.assert_not_indexed(filename) def assert_has_thumbnail(self, filename): # Note that this is the path for local storage only, not for removable diff --git a/tracker/common.py b/tracker/common.py index c8bce6f..14f35e5 100644 --- a/tracker/common.py +++ b/tracker/common.py @@ -110,10 +110,10 @@ class TrackerIndexer(): self.wait_files = True self.loop.run() - def assert_indexed(self, uri, extra=None): + def assert_indexed(self, path, extra=None): query = ('select ?urn where { ' - ' ?urn nie:url "%s" ; ' - ' tracker:available true . ') % (uri) + ' ?urn nie:url "file://%s" ; ' + ' tracker:available true . ') % (path) if extra is not None: query += extra query += ' }' @@ -125,8 +125,39 @@ class TrackerIndexer(): if cursor.next(None): raise Exception("Query '%s' returned more than one result" % query) - def assert_not_indexed(self, uri): - query = ('select ?urn where { ?urn nie:url "%s" }') % (uri) + def assert_not_indexed(self, path): + query = ('select ?urn where { ?urn nie:url "file://%s" }') % (path) cursor = self.conn.query(query, None) if cursor.next(None): raise Exception("Query '%s' returned results" % query) + + def assert_all_indexed(self, root): + playable_query = '?urn bosch:playable true . ' + album_query = ('?urn nmm:musicAlbum ?album . ' + '?album nmm:albumTitle "GNOME Audio" . ') + performer_query = ('?urn nmm:performer ?performer . ' + '?performer nmm:artistName "Conrad Parker" . ') + title_query = '?urn nie:title "GNOME Generic Sound" . ' + audio_query = album_query + performer_query + title_query + + self.assert_indexed(root + '/Music/generic.mp3', audio_query) + self.assert_indexed(root + '/Music/generic.flac', + audio_query + playable_query) + self.assert_indexed(root + '/Music/generic-no-artwork.mp3', + audio_query) + self.assert_indexed(root + '/Music/generic.oga', audio_query) + self.assert_indexed(root + '/Music/generic.wav', playable_query) + self.assert_indexed(root + '/Documents/lorem_presentation.odp') + self.assert_indexed(root + '/Documents/lorem_spreadsheet.ods') + self.assert_indexed(root + '/Documents/lorem_text.txt') + self.assert_indexed(root + '/Documents/more_lorem_ipsum.odt') + self.assert_indexed(root + '/Pictures/' + LONG_JPEG_NAME) + self.assert_indexed(root + '/Pictures/collabora-logo-big.png') + self.assert_indexed(root + '/Music/Generic_Sounds.pls', + '?urn nfo:entryCounter 3') + self.assert_indexed(root + '/Music/Ghosts.pls', + '?urn nfo:entryCounter 38') + self.assert_indexed(root + '/Music/Ghosts.m3u', + '?urn nfo:entryCounter 38') + self.assert_indexed(root + '/Videos/big_buck_bunny_smaller.ogv', + playable_query) diff --git a/tracker/manual/test-removable-device.py b/tracker/manual/test-removable-device.py index 3808d63..2f3d9ee 100755 --- a/tracker/manual/test-removable-device.py +++ b/tracker/manual/test-removable-device.py @@ -34,10 +34,6 @@ class TestRemovableDevice(unittest.TestCase): self.path = mount.get_root().get_path() self.loop.quit() - def assert_indexed(self, filename, extra=None): - uri = 'file://%s/%s' % (self.path, filename) - self.indexer.assert_indexed(uri, extra) - def test_removable_device(self): print('Please insert storage ...') self.loop.run() @@ -46,8 +42,7 @@ class TestRemovableDevice(unittest.TestCase): self.indexer = TrackerIndexer() self.indexer.copy_medias(self.path) self.indexer.start() - - self.assert_indexed('generic.flac', '?urn bosch:playable true') + self.indexer.assert_all_indexed(self.path) if __name__ == "__main__": unittest.main() -- GitLab