コード例 #1
0
    def test_import_anchor(self):
        """Test importing a document that contains anchor, and check
        they are reported to the indexes.
        """
        importer = self.assertImportFile(
            'test_import_anchor.silvaxml',
            ['/root/folder',
             '/root/folder/anchor',
             '/root/folder/indexer'])
        self.assertEqual(importer.getProblems(), [])
        self.assertEqual(
            self.root.folder.objectIds(),
            ['anchor', 'indexer'])

        document = self.root.folder.anchor
        self.assertTrue(verifyObject(IDocument, document))
        self.assertNotEqual(document.get_viewable(), None)
        self.assertEqual(document.get_editable(), None)

        version = document.get_viewable()
        self.assertTrue(verifyObject(IDocumentVersion, version))

        index = ITextIndexEntries(version.body)
        self.assertTrue(verifyObject(ITextIndexEntries, index))
        self.assertEqual(len(index.entries), 2)
        self.assertEqual(
            map(lambda e: (e.anchor, e.title), index.entries),
            [('rock', 'Rock that anchor'), ('pop', 'That will pop your mind')])

        index = IIndexEntries(document)
        self.assertTrue(verifyObject(IIndexEntries, index))
        self.assertEqual(index.get_title(), 'Anchor\'s document')
        self.assertEqual(len(index.get_entries()), 2)
        self.assertEqual(
            index.get_entries(),
            [('rock', 'Rock that anchor'), ('pop', 'That will pop your mind')])

        # Verify that the entries are available in the indexer
        indexer = self.root.folder.indexer
        self.assertTrue(verifyObject(IIndexer, indexer))
        self.assertEqual(
            indexer.get_index_names(),
            ['Rock that anchor', 'That will pop your mind'])
        self.assertEqual(
            len(indexer.get_index_entry('Rock that anchor')),
            1)
        self.assertEqual(
            len(indexer.get_index_entry('That will pop your mind')),
            1)