示例#1
0
    def testConstructionTypeError(self):
        """
        Test type error for reader/renderer arguments.
        """

        # Content
        with self.assertRaises(exceptions.MooseDocsException) as e:
            Translator(None, 'foo', HTMLRenderer(), [])
        self.assertIn("The argument 'content' must be", e.exception.message)

        # Reader
        content = page.PageNodeBase(None)
        with self.assertRaises(exceptions.MooseDocsException) as e:
            Translator(content, 'foo', HTMLRenderer(), [])
        self.assertIn("The argument 'reader' must be", e.exception.message)

        # Renderer
        with self.assertRaises(exceptions.MooseDocsException) as e:
            Translator(content, MarkdownReader(), 'foo', [])
        self.assertIn("The argument 'renderer' must be", e.exception.message)

        # Extensions
        with self.assertRaises(exceptions.MooseDocsException) as e:
            Translator(content, MarkdownReader(), HTMLRenderer(), ['foo'])
        self.assertIn("The argument 'extensions' must be", e.exception.message)
示例#2
0
 def testConstruction(self):
     """
     Test most basic construction.
     """
     content = page.PageNodeBase(None)
     translator = Translator(content, MarkdownReader(), HTMLRenderer(), [])
     self.assertIsInstance(translator.reader, MarkdownReader)
     self.assertIsInstance(translator.renderer, HTMLRenderer)
示例#3
0
 def testBasic(self):
     """
     Test correct use.
     """
     t = Translator(page.PageNodeBase(None), MarkdownReader(),
                    HTMLRenderer(), [])
     obj = mixins.TranslatorObject()
     self.assertFalse(obj.initialized())
     obj.init(t)
     self.assertTrue(obj.initialized())
     self.assertIs(obj.translator, t)
示例#4
0
 def testReinit(self):
     ast = tokens.Paragraph(None)
     comp = ParComponent()
     content = page.PageNodeBase(None)
     renderer = renderers.HTMLRenderer()
     translator = Translator(content, MarkdownReader(), renderer, [])
     translator.init('')
     renderer.add(tokens.Paragraph, comp)
     renderer.render(ast)
     renderer.render(ast)
     self.assertEqual(comp.count, 2)
示例#5
0
    def testRender(self):
        ast = tokens.Paragraph(None)
        tokens.String(ast, content=u'foo')
        content = page.PageNodeBase(None)
        renderer = renderers.HTMLRenderer()
        translator = Translator(content, MarkdownReader(), renderer, [])
        translator.init('')

        renderer.add(tokens.Paragraph, ParComponent())
        renderer.add(tokens.String, StringComponent())

        root = renderer.render(ast)
        self.assertIsInstance(root, html.Tag)
        self.assertEqual(root.name, 'body')
        self.assertIsInstance(root(0), html.Tag)
        self.assertEqual(root(0).name, 'p')
        self.assertIsInstance(root(0)(0), html.String)
        self.assertEqual(root(0)(0).content, u'foo')
示例#6
0
    def testExceptions(self):
        """
        Test Exceptions.
        """
        t = Translator(page.PageNodeBase(None), MarkdownReader(),
                       HTMLRenderer(), [])
        obj = mixins.TranslatorObject()
        with self.assertRaises(exceptions.MooseDocsException) as e:
            obj.init('')
        self.assertIn("The argument 'translator'", e.exception.message)

        with self.assertRaises(exceptions.MooseDocsException) as e:
            obj.translator
        self.assertIn("The init() method of", e.exception.message)

        obj.init(t)
        with self.assertRaises(exceptions.MooseDocsException) as e:
            obj.init(t)
        self.assertIn("already been initialized", e.exception.message)