def test_import_news_page(self):
        """Import a news page.
        """
        importer = self.assertImportFile(
            "test_import_news_page.silvaxml",
            ['/root/news/index',
             '/root/news/newspage',
             '/root/news/filter',
             '/root/news'])
        self.assertEqual(importer.getProblems(), [])

        base = self.root._getOb('news')
        news_page = base._getOb('newspage')
        self.assertTrue(verifyObject(INewsPage, news_page))
        version = news_page.get_editable()
        self.assertTrue(verifyObject(INewsPageVersion, version))
        self.assertIsNot(version.get_design(), None)

        manager = IBlockManager(version)
        slot = manager.get_slot('one')
        _, block = slot[0]
        self.assertIsInstance(block, NewsInfoBlock)
    def test_export_page_with_page_model(self):
        """Export a page with a page model at the same time.
        """
        with Transaction():
            factory = self.root.base.manage_addProduct['silva.core.contentlayout']
            factory.manage_addPageModel('model', 'A Page Model')

            model = self.root.base.model
            model_version = model.get_editable()
            model_version.set_design(registry.lookup_design_by_name('adesign'))
            IPublicationWorkflow(model).publish()

            text_block = TextBlock(identifier='text block 1')
            controller = getWrapper(
                (text_block, model_version, TestRequest()),
                IBlockController)
            controller.text = "<div>text</div>"

            manager = IBlockManager(model_version)
            manager.add('two', text_block)
            manager.add('two', BlockSlot(identifier='slot-for-two'))
            manager.add('one', BlockSlot(
                    identifier='slot-for-one',
                    tag='div',
                    css_class='the-only-one'))

            page_version = self.root.base.page.get_editable()
            page_version.set_design(model_version)

        self.assertEquals(model_version, page_version.get_design())

        exporter = self.assertExportEqual(
            self.root.base,
            'test_export_page_with_page_model.silvaxml')
        self.assertEqual(exporter.getZexpPaths(), [])
        self.assertEqual(exporter.getAssetPaths(), [])
        self.assertEqual(exporter.getProblems(), [])