def test_09_deletion_directory (self): """ Delete a directory """ victim = path("test-monitored/dir1") victim_id = self.system.store.get_resource_id (uri(victim)) shutil.rmtree (victim) file_inside_victim_url = uri (os.path.join (victim, "file2.txt")) file_inside_victim_id = self.system.store.get_resource_id (file_inside_victim_url) self.system.store.await_resource_deleted (file_inside_victim_id) result = self.__get_text_documents () self.assertEquals (len (result), 1) unpacked_result = [ r[0] for r in result] self.assertIn ( uri ("test-monitored/file1.txt"), unpacked_result) # Restore the dirs os.makedirs (path("test-monitored/dir1")) os.makedirs (path("test-monitored/dir1/dir2")) for f in ["test-monitored/dir1/file2.txt", "test-monitored/dir1/dir2/file3.txt"]: filename = path(f) writer = open (filename, "w") writer.write ("Don't panic, everything is fine") writer.close () self.system.store.await_resource_inserted ('nfo:TextDocument', uri(f)) # Check everything is fine result = self.__get_text_documents () self.assertEquals (len (result), 3)
def test_05_move_file_unmonitored_monitored (self): """ Move file from unmonitored location to monitored location and index should be updated """ # Maybe the miner hasn't finished yet with the setUp deletion! self.system.tracker_miner_fs_wait_for_idle () TEXT = "airplane is beautiful" TEST_16_SOURCE = "test-no-monitored/fts-indexing-text-16.txt" TEST_16_DEST = "test-monitored/fts-indexing-text-16.txt" self.__recreate_file (path (TEST_16_SOURCE), TEXT) # the file is supposed to be ignored by tracker, so there is no notification.. time.sleep (5) results = self.search_word ("airplane") self.assertEquals (len (results), 0) shutil.copyfile ( path (TEST_16_SOURCE), path (TEST_16_DEST)) self.tracker.await_resource_inserted (rdf_class = 'nfo:Document', url = uri (TEST_16_DEST)) results = self.search_word ("airplane") self.assertEquals (len (results), 1) os.remove ( path (TEST_16_SOURCE)) os.remove ( path (TEST_16_DEST))
def test_05_move_file_unmonitored_monitored (self): """ Move file from unmonitored location to monitored location and index should be updated """ # Maybe the miner hasn't finished yet with the setUp deletion! self.system.tracker_miner_fs_wait_for_idle () TEXT = "airplane is beautiful" TEST_16_SOURCE = "test-no-monitored/fts-indexing-text-16.txt" TEST_16_DEST = "test-monitored/fts-indexing-text-16.txt" self.__recreate_file (path (TEST_16_SOURCE), TEXT) results = self.search_word ("airplane") self.assertEquals (len (results), 0) shutil.copyfile ( path (TEST_16_SOURCE), path (TEST_16_DEST)) self.system.tracker_miner_fs_wait_for_idle () results = self.search_word ("airplane") self.assertEquals (len (results), 1) os.remove ( path (TEST_16_SOURCE)) os.remove ( path (TEST_16_DEST))
def test_09_deletion_directory(self): """ Delete a directory """ victim = path("test-monitored/dir1") victim_id = self.system.store.get_resource_id(uri(victim)) shutil.rmtree(victim) file_inside_victim_url = uri(os.path.join(victim, "file2.txt")) file_inside_victim_id = self.system.store.get_resource_id( file_inside_victim_url) self.system.store.await_resource_deleted(file_inside_victim_id) result = self.__get_text_documents() self.assertEquals(len(result), 1) unpacked_result = [r[0] for r in result] self.assertIn(uri("test-monitored/file1.txt"), unpacked_result) # Restore the dirs os.makedirs(path("test-monitored/dir1")) os.makedirs(path("test-monitored/dir1/dir2")) for f in [ "test-monitored/dir1/file2.txt", "test-monitored/dir1/dir2/file3.txt" ]: filename = path(f) writer = open(filename, "w") writer.write("Don't panic, everything is fine") writer.close() self.system.store.await_resource_inserted('nfo:TextDocument', uri(f)) # Check everything is fine result = self.__get_text_documents() self.assertEquals(len(result), 3)
def test_05_move_file_unmonitored_monitored (self): """ Move file from unmonitored location to monitored location and index should be updated """ TEXT = "airplane is beautiful" TEST_16_SOURCE = "test-no-monitored/fts-indexing-text-16.txt" TEST_16_DEST = "test-monitored/fts-indexing-text-16.txt" self.__recreate_file (path (TEST_16_SOURCE), TEXT) # the file is supposed to be ignored by tracker, so there is no notification.. time.sleep (5) results = self.search_word ("airplane") self.assertEquals (len (results), 0) shutil.copyfile ( path (TEST_16_SOURCE), path (TEST_16_DEST)) self.tracker.await_resource_inserted (rdf_class = 'nfo:Document', url = uri(TEST_16_DEST), required_property = 'nie:plainTextContent') results = self.search_word ("airplane") self.assertEquals (len (results), 1) os.remove ( path (TEST_16_SOURCE)) os.remove ( path (TEST_16_DEST))
def setUp (self): self.tracker.reset_graph_updates_tracking () self.testfile = "test-monitored/miner-fts-test.txt" if os.path.exists (path (self.testfile)): id = self._query_id (uri (self.testfile)) os.remove (path (self.testfile)) self.tracker.await_resource_deleted (id) self.tracker.reset_graph_updates_tracking ()
def test_04_on_unmonitored_file (self): """ Set text in an unmonitored file. There should be no results. """ TEXT = "automobile is red" TEST_15_FILE = "test-no-monitored/fts-indexing-test-15.txt" self.__recreate_file (path (TEST_15_FILE), TEXT) results = self.search_word ("automobile") self.assertEquals (len (results), 0) os.remove (path (TEST_15_FILE))
def test_01_file_deletion(self): """ Ensure every logical resource (nie:InformationElement) contained with in a file is deleted when the file is deleted. """ (file_1_id, file_1_urn) = self.create_test_file("test-monitored/test_1.txt") (file_2_id, file_2_urn) = self.create_test_file("test-monitored/test_2.txt") (ie_1_id, ie_1_urn) = self.create_test_content(file_1_urn, "Test resource 1") (ie_2_id, ie_2_urn) = self.create_test_content(file_2_urn, "Test resource 2") os.unlink(path("test-monitored/test_1.txt")) self.tracker.await_resource_deleted(file_1_id) self.tracker.await_resource_deleted (ie_1_id, "Associated logical resource failed to be deleted " \ "when its containing file was removed.") self.assertResourceMissing(file_1_urn) self.assertResourceMissing(ie_1_urn) self.assertResourceExists(file_2_urn) self.assertResourceExists(ie_2_urn)
def set_text (self, text): f = open (path (self.testfile), "w") f.write (text) f.close () self.tracker.await_resource_inserted (rdf_class = 'nfo:Document', url = uri (self.testfile)) self.tracker.reset_graph_updates_tracking ()
def set_text (self, text): exists = os.path.exists(path(self.testfile)) f = open (path (self.testfile), "w") f.write (text) f.close () if exists: subject_id = self.tracker.get_resource_id(uri(self.testfile)) self.tracker.await_property_changed( subject_id=subject_id, property_uri='nie:plainTextContent') else: self.tracker.await_resource_inserted( rdf_class='nfo:Document', url=uri(self.testfile), required_property='nie:plainTextContent') self.tracker.reset_graph_updates_tracking()
def create_test_file(self, file_name): file_path = path(file_name) file = open(file_path, 'w') file.write("Test") file.close() return self.tracker.await_resource_inserted(rdf_class='nfo:Document', url=uri(file_name))
def create_test_file (self, file_name): file_path = path(file_name) file = open (file_path, 'w') file.write ("Test") file.close () return self.tracker.await_resource_inserted (rdf_class = 'nfo:Document', url = uri(file_name))
def test_06_move_from_monitored_to_unmonitored (self): """ Move a file from monitored to unmonitored directory """ source = path("test-monitored/dir1/file2.txt") dest = path("test-no-monitored/file2.txt") source_id = self.system.store.get_resource_id (uri(source)) shutil.move (source, dest) self.system.store.await_resource_deleted (source_id) result = self.__get_text_documents () self.assertEquals (len (result), 2) unpacked_result = [ r[0] for r in result] self.assertIn ( uri ("test-monitored/file1.txt"), unpacked_result) self.assertIn ( uri ("test-monitored/dir1/dir2/file3.txt"), unpacked_result) # Restore the file shutil.move (dest, source) self.system.store.await_resource_inserted ('nfo:TextDocument', uri(source)) self.assertEquals (3, self.tracker.count_instances ("nfo:TextDocument"))
def test_01_removal_of_file (self): """ When removing the file, its text contents disappear from the index """ TEXT = "automobile is red and big and whatnot" self.basic_test (TEXT, "automobile") os.remove ( path (self.testfile)) self.system.tracker_miner_fs_wait_for_idle () results = self.search_word ("automobile") self.assertEquals (len (results), 0)
def test_07_move_from_monitored_to_monitored(self): """ Move a file between monitored directories """ source = path("test-monitored/dir1/file2.txt") dest = path("test-monitored/file2.txt") resource_id = self.tracker.get_resource_id(url=uri(source)) source_dir_urn = self.__get_file_urn(os.path.dirname(source)) parent_before = self.__get_parent_urn(source) self.assertEquals(source_dir_urn, parent_before) shutil.move(source, dest) self.tracker.await_property_changed(resource_id, 'nie:url') # Checking fix for NB#214413: After a move operation, nfo:belongsToContainer # should be changed to the new one dest_dir_urn = self.__get_file_urn(os.path.dirname(dest)) parent_after = self.__get_parent_urn(dest) self.assertNotEquals(parent_before, parent_after) self.assertEquals(dest_dir_urn, parent_after) result = self.__get_text_documents() self.assertEquals(len(result), 3) unpacked_result = [r[0] for r in result] self.assertIn(uri("test-monitored/file1.txt"), unpacked_result) self.assertIn(uri("test-monitored/file2.txt"), unpacked_result) self.assertIn(uri("test-monitored/dir1/dir2/file3.txt"), unpacked_result) # Restore the file shutil.move(dest, source) self.tracker.await_property_changed(resource_id, 'nie:url') result = self.__get_text_documents() self.assertEquals(len(result), 3) unpacked_result = [r[0] for r in result] self.assertIn(uri("test-monitored/dir1/file2.txt"), unpacked_result)
def test_01_removal_of_file (self): """ When removing the file, its text contents disappear from the index """ TEXT = "automobile is red and big and whatnot" self.basic_test (TEXT, "automobile") id = self._query_id (uri (self.testfile)) os.remove ( path (self.testfile)) self.tracker.await_resource_deleted (id) results = self.search_word ("automobile") self.assertEquals (len (results), 0)
def test_07_move_from_monitored_to_monitored (self): """ Move a file between monitored directories """ source = path("test-monitored/dir1/file2.txt") dest = path("test-monitored/file2.txt") resource_id = self.tracker.get_resource_id(url=uri(source)) source_dir_urn = self.__get_file_urn (os.path.dirname(source)) parent_before = self.__get_parent_urn (source) self.assertEquals (source_dir_urn, parent_before) shutil.move (source, dest) self.tracker.await_property_changed(resource_id, 'nie:url') # Checking fix for NB#214413: After a move operation, nfo:belongsToContainer # should be changed to the new one dest_dir_urn = self.__get_file_urn (os.path.dirname(dest)) parent_after = self.__get_parent_urn (dest) self.assertNotEquals (parent_before, parent_after) self.assertEquals (dest_dir_urn, parent_after) result = self.__get_text_documents () self.assertEquals (len (result), 3) unpacked_result = [ r[0] for r in result] self.assertIn ( uri ("test-monitored/file1.txt"), unpacked_result) self.assertIn ( uri ("test-monitored/file2.txt"), unpacked_result) self.assertIn ( uri ("test-monitored/dir1/dir2/file3.txt"), unpacked_result) # Restore the file shutil.move (dest, source) self.tracker.await_property_changed(resource_id, 'nie:url') result = self.__get_text_documents () self.assertEquals (len (result), 3) unpacked_result = [ r[0] for r in result] self.assertIn ( uri ("test-monitored/dir1/file2.txt"), unpacked_result)
def test_06_move_from_monitored_to_unmonitored(self): """ Move a file from monitored to unmonitored directory """ source = path("test-monitored/dir1/file2.txt") dest = path("test-no-monitored/file2.txt") source_id = self.system.store.get_resource_id(uri(source)) shutil.move(source, dest) self.system.store.await_resource_deleted(source_id) result = self.__get_text_documents() self.assertEquals(len(result), 2) unpacked_result = [r[0] for r in result] self.assertIn(uri("test-monitored/file1.txt"), unpacked_result) self.assertIn(uri("test-monitored/dir1/dir2/file3.txt"), unpacked_result) # Restore the file shutil.move(dest, source) self.system.store.await_resource_inserted('nfo:TextDocument', uri(source)) self.assertEquals(3, self.tracker.count_instances("nfo:TextDocument"))
def test_08_deletion_single_file (self): """ Delete one of the files """ victim = path("test-monitored/dir1/file2.txt") victim_id = self.system.store.get_resource_id (uri(victim)) os.remove (victim) self.system.store.await_resource_deleted (victim_id) result = self.__get_text_documents () self.assertEquals (len (result), 2) unpacked_result = [ r[0] for r in result] self.assertIn ( uri ("test-monitored/file1.txt"), unpacked_result) self.assertIn ( uri ("test-monitored/dir1/dir2/file3.txt"), unpacked_result) # Restore the file f = open (victim, "w") f.write ("Don't panic, everything is fine") f.close () self.system.store.await_resource_inserted ('nfo:TextDocument', uri(victim))
def test_08_deletion_single_file(self): """ Delete one of the files """ victim = path("test-monitored/dir1/file2.txt") victim_id = self.system.store.get_resource_id(uri(victim)) os.remove(victim) self.system.store.await_resource_deleted(victim_id) result = self.__get_text_documents() self.assertEquals(len(result), 2) unpacked_result = [r[0] for r in result] self.assertIn(uri("test-monitored/file1.txt"), unpacked_result) self.assertIn(uri("test-monitored/dir1/dir2/file3.txt"), unpacked_result) # Restore the file f = open(victim, "w") f.write("Don't panic, everything is fine") f.close() self.system.store.await_resource_inserted('nfo:TextDocument', uri(victim))
def test_01_file_deletion (self): """ Ensure every logical resource (nie:InformationElement) contained with in a file is deleted when the file is deleted. """ (file_1_id, file_1_urn) = self.create_test_file ("test-monitored/test_1.txt") (file_2_id, file_2_urn) = self.create_test_file ("test-monitored/test_2.txt") (ie_1_id, ie_1_urn) = self.create_test_content (file_1_urn, "Test resource 1") (ie_2_id, ie_2_urn) = self.create_test_content (file_2_urn, "Test resource 2") os.unlink (path ("test-monitored/test_1.txt")) self.tracker.await_resource_deleted (file_1_id) self.tracker.await_resource_deleted (ie_1_id, "Associated logical resource failed to be deleted " \ "when its containing file was removed.") self.assertResourceMissing (file_1_urn) self.assertResourceMissing (ie_1_urn) self.assertResourceExists (file_2_urn) self.assertResourceExists (ie_2_urn)
def set_text (self, text): f = open (path (self.testfile), "w") f.write (text) f.close () self.system.tracker_miner_fs_wait_for_idle ()
def setUp (self): self.testfile = "test-monitored/miner-fts-test.txt" if os.path.exists (path (self.testfile)): os.remove (path (self.testfile))
def setUp (self): self.testfile = "test-monitored/miner-fts-test.txt" if os.path.exists (path (self.testfile)): os.remove (path (self.testfile)) super(CommonMinerFTS, self).setUp()