[tracker-miners/wip/carlosg/monitor-event-fixes: 3/3] tracker-miner-fs: Make graph-specific data optional on deletes




commit ae41e05a7b9447442c5153da88fba5adf4e035e8
Author: Carlos Garnacho <carlosg gnome org>
Date:   Sun Aug 9 16:54:45 2020 +0200

    tracker-miner-fs: Make graph-specific data optional on deletes
    
    Depending on the file type and its processing state, we may expect
    nfo:FileDataObject and/or nie:InformationElement data in the content-
    specific graphs.
    
    The delete operations should account for those not being yet added,
    or simply missing due to the file type. This fixes delete operations
    after the nfo:FileDataObject/nie:InformationElement split.
    
    This required a minor tweak on the corresponding test, so the fake
    data we insert resembles more the current data layout as extracted by
    the miner.

 src/miners/fs/tracker-miner-files.c              | 3 ++-
 tests/functional-tests/miner-resource-removal.py | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)
---
diff --git a/src/miners/fs/tracker-miner-files.c b/src/miners/fs/tracker-miner-files.c
index 8033dceb0..06d356018 100644
--- a/src/miners/fs/tracker-miner-files.c
+++ b/src/miners/fs/tracker-miner-files.c
@@ -2429,7 +2429,8 @@ create_delete_sparql (GFile    *file,
                               "       nie:url ?u . "
                               "  }"
                               "  GRAPH ?g {"
-                              "    ?ie nie:isStoredAs ?f . "
+                              "    ?f a rdfs:Resource . "
+                              "    OPTIONAL { ?ie nie:isStoredAs ?f } . "
                               "  }"
                               "  FILTER (");
 
diff --git a/tests/functional-tests/miner-resource-removal.py 
b/tests/functional-tests/miner-resource-removal.py
index cf0fd1fd0..100367699 100755
--- a/tests/functional-tests/miner-resource-removal.py
+++ b/tests/functional-tests/miner-resource-removal.py
@@ -37,10 +37,11 @@ class MinerResourceRemovalTest(fixtures.TrackerMinerTest):
 
     def create_extra_audio_content(self, file_urn, url, title):
         sparql = "WITH <%s> INSERT { \
+                    <%s> a nfo:FileDataObject . \
                     <%s> a nmm:MusicPiece ; \
                          nie:title \"%s\" ; \
                          nie:isStoredAs <%s> . \
-                  } " % (fixtures.AUDIO_GRAPH, file_urn, title, url)
+                  } " % (fixtures.AUDIO_GRAPH, url, file_urn, title, url)
 
         with self.tracker.await_insert(fixtures.AUDIO_GRAPH,
                                        f'a nmm:MusicPiece; nie:title "{title}"',


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]