Skip to content
Snippets Groups Projects
Commit dcc93ed0 authored by Xavier Claessens's avatar Xavier Claessens Committed by Sjoerd Simons
Browse files

tracker: check all files are indexed in manual test

Reviewers: smcv, pwith

Differential Revision: https://phabricator.apertis.org/D397
parent e6ff7140
No related branches found
No related tags found
No related merge requests found
......@@ -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
......
......@@ -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)
......@@ -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()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment