[tracker-miners/sam/writeback-test-fix: 4/5] functional-tests/410-extractor-decorator: Ensure data is deleted even if test fails



commit c48cbce2a4eb046276669a139cab7c0dc4d43c07
Author: Sam Thursfield <sam afuera me uk>
Date:   Sat Jun 22 19:22:25 2019 +0200

    functional-tests/410-extractor-decorator: Ensure data is deleted even if test fails

 tests/functional-tests/410-extractor-decorator.py | 49 ++++++++++++-----------
 1 file changed, 26 insertions(+), 23 deletions(-)
---
diff --git a/tests/functional-tests/410-extractor-decorator.py 
b/tests/functional-tests/410-extractor-decorator.py
index f523dd6ef..a5f3050dc 100755
--- a/tests/functional-tests/410-extractor-decorator.py
+++ b/tests/functional-tests/410-extractor-decorator.py
@@ -80,29 +80,32 @@ class ExtractorDecoratorTest(ut.TestCase):
         # Insert a valid file and wait extraction of its metadata.
         file_path = os.path.join(self.datadir, os.path.basename(VALID_FILE))
         shutil.copy(VALID_FILE, file_path)
-        file_id, file_urn = store.await_resource_inserted(
-            VALID_FILE_CLASS, title=VALID_FILE_TITLE)
-
-        # Remove a key piece of metadata.
-        store.update(
-            'DELETE { <%s> nie:title ?title }'
-            ' WHERE { <%s> nie:title ?title }' % (file_urn, file_urn))
-        store.await_property_changed(VALID_FILE_CLASS, file_id, 'nie:title')
-        assert not store.ask('ASK { <%s> nie:title ?title }' % file_urn)
-
-        log("Sending re-index request")
-        # Request re-indexing (same as `tracker index --file ...`)
-        miner_fs.index_file('file://' + os.path.join(self.datadir, file_path))
-
-        # The extractor should reindex the file and re-add the metadata that we
-        # deleted, so we should see the nie:title property change.
-        store.await_property_changed(VALID_FILE_CLASS, file_id, 'nie:title')
-
-        title_result = store.query('SELECT ?title { <%s> nie:title ?title }' % file_urn)
-        assert len(title_result) == 1
-        self.assertEqual(title_result[0][0], VALID_FILE_TITLE)
-
-        os.remove(file_path)
+        try:
+            file_id, file_urn = store.await_resource_inserted(
+                VALID_FILE_CLASS, title=VALID_FILE_TITLE)
+
+            # Remove a key piece of metadata.
+            #   (Writeback must be disabled in the config so that the file
+            #   itself is not changed).
+            store.update(
+                'DELETE { <%s> nie:title ?title }'
+                ' WHERE { <%s> nie:title ?title }' % (file_urn, file_urn))
+            store.await_property_changed(VALID_FILE_CLASS, file_id, 'nie:title')
+            assert not store.ask('ASK { <%s> nie:title ?title }' % file_urn)
+
+            log("Sending re-index request")
+            # Request re-indexing (same as `tracker index --file ...`)
+            miner_fs.index_file('file://' + os.path.join(self.datadir, file_path))
+
+            # The extractor should reindex the file and re-add the metadata that we
+            # deleted, so we should see the nie:title property change.
+            store.await_property_changed(VALID_FILE_CLASS, file_id, 'nie:title')
+
+            title_result = store.query('SELECT ?title { <%s> nie:title ?title }' % file_urn)
+            assert len(title_result) == 1
+            self.assertEqual(title_result[0][0], VALID_FILE_TITLE)
+        finally:
+            os.remove(file_path)
 
 
 if __name__ == '__main__':


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