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 testTokenizeException(self): root = tokens.Token(None) content = page.PageNodeBase(None) reader = readers.Reader(lexers.RecursiveLexer('foo')) translator = Translator(content, reader, HTMLRenderer(), []) translator.init('') reader.add('foo', WordComponent()) reader.parse(root, u'throw bar') self.assertIsInstance(root(0), tokens.ExceptionToken) self.assertIsInstance(root(1), tokens.Word) self.assertEqual(root(1).content, u'bar')
def testBasic(self): root = tokens.Token(None) content = page.PageNodeBase(None) reader = readers.Reader(lexers.RecursiveLexer('block', 'inline')) translator = Translator(content, reader, HTMLRenderer(), []) translator.init('') reader.add('block', BlockComponent()) reader.add('inline', WordComponent()) reader.parse(root, u'foo bar') self.assertIsInstance(root(0), tokens.Token) self.assertIsInstance(root(0)(0), tokens.Word) self.assertEqual(root(0)(0).content, u'foo') self.assertIsInstance(root(0)(1), tokens.Word) self.assertEqual(root(0)(1).content, u'bar')
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)