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)
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)
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)
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)
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')
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)