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)
Exemple #2
0
    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)
Exemple #5
0
    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))
Exemple #6
0
 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 ()
Exemple #7
0
    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_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)
Exemple #10
0
 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 ()
Exemple #11
0
    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)
Exemple #17
0
    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))
Exemple #25
0
    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()