class TestMXInfo(unittest.TestCase): def setUp(self): self.environments = Environments() def test_handle_mxinfo(self): """MXInfo""" doc = pf.Doc(metadata={"lang": "en"}) elem_content = r""" \begin{MXInfo}{Ableitung} Foo bar \end{MXInfo} """ doc.content.extend([pf.RawBlock(elem_content, format="latex")]) elem = doc.content[0] # this sets up elem.parent ret = self.environments.handle_mxinfo("Foo bar", ["Ableitung"], elem) self.assertIsInstance(ret, pf.Div) header = ret.content[0] self.assertIsInstance(header, pf.Header) self.assertEqual(pf.stringify(header), "Ableitung") para = ret.content[1] self.assertIsInstance(para.content[0], pf.Str) self.assertEqual(para.content[0].text, "Foo") self.assertIsInstance(para.content[1], pf.Space) self.assertIsInstance(para.content[2], pf.Str) self.assertEqual(para.content[2].text, "bar") def test_handle_mxinfo_math_title(self): """MXInfo with Math in title""" doc = pf.Doc(metadata={"lang": "en"}) elem_content = r""" \begin{MXInfo}{Ableitung $x^n$} Foo bar \end{MXInfo} """ doc.content.extend([pf.RawBlock(elem_content, format="latex")]) elem = doc.content[0] # this sets up elem.parent ret = self.environments.handle_mxinfo("Foo bar", ["Ableitung $x^n$"], elem) self.assertIsInstance(ret, pf.Div) header = ret.content[0] self.assertIsInstance(header, pf.Header) self.assertIsInstance(header.content[0], pf.Str) self.assertEqual(header.content[0].text, "Ableitung") self.assertIsInstance(header.content[1], pf.Space) self.assertIsInstance(header.content[2], pf.Math) self.assertEqual(header.content[2].text, "x^n") self.assertEqual(header.content[2].format, "InlineMath") para = ret.content[1] self.assertIsInstance(para.content[0], pf.Str) self.assertEqual(para.content[0].text, "Foo") self.assertIsInstance(para.content[1], pf.Space) self.assertIsInstance(para.content[2], pf.Str) self.assertEqual(para.content[2].text, "bar")
def setUp(self): self.doc = pf.Doc(metadata={"lang": "en"}) self.environments = Environments() self.elem_content = r""" \begin{MSectionStart} Lorem ipsum \end{MSectionStart}""" self.doc.content.extend( [pf.RawBlock(self.elem_content, format="latex")]) self.elem = self.doc.content[0] # this sets up elem.parent
class TestMTest(unittest.TestCase): def setUp(self): self.environments = Environments() def test_handle_mtest(self): """MTest""" doc = pf.Doc(metadata={"lang": "en"}) elem_content = r""" \begin{MTest}{Abschlusstest} Foo bar \end{MXContent}""" doc.content.extend([pf.RawBlock(elem_content, format="latex")]) elem = doc.content[0] # this sets up elem.parent ret = self.environments.handle_mtest("Foo bar", ["Abschlusstest"], elem) self.assertEqual(len(ret), 2) header = ret[0] self.assertIsInstance(header, pf.Header) self.assertEqual(pf.stringify(header), "Abschlusstest") para = ret[1] self.assertIsInstance(para.content[0], pf.Str) self.assertEqual(para.content[0].text, "Foo") self.assertIsInstance(para.content[1], pf.Space) self.assertIsInstance(para.content[2], pf.Str) self.assertEqual(para.content[2].text, "bar") def test_handle_mtest_section_title(self): """MTest""" doc = pf.Doc(metadata={"lang": "en"}) elem_content = r""" \begin{MTest}{Abschlusstest Kapitel \arabic{section}} Foo bar \end{MXContent}""" doc.content.extend([pf.RawBlock(elem_content, format="latex")]) elem = doc.content[0] # this sets up elem.parent ret = self.environments.handle_mtest( "Foo bar", [r"Abschlusstest Kapitel \arabic{section}"], elem) self.assertEqual(len(ret), 2) header = ret[0] self.assertIsInstance(header, pf.Header) self.assertEqual(pf.stringify(header), "Abschlusstest") para = ret[1] self.assertIsInstance(para.content[0], pf.Str) self.assertEqual(para.content[0].text, "Foo") self.assertIsInstance(para.content[1], pf.Space) self.assertIsInstance(para.content[2], pf.Str) self.assertEqual(para.content[2].text, "bar")
class TestMxContent(unittest.TestCase): def setUp(self): self.doc = pf.Doc(metadata={"lang": "en"}) self.environments = Environments() self.elem_content = r""" \begin{MXContent}{Nice title}{Short title}{STD} Lorem ipsum \end{MXContent}""" self.doc.content.extend( [pf.RawBlock(self.elem_content, format="latex")]) self.elem = self.doc.content[0] # this sets up elem.parent def test_mxcontent(self): """Should handle MXContent""" ret = self.environments.handle_mxcontent( "Lorem ipsum", ["Nice title", "Short title", "STD"], self.elem) header = ret[0] self.assertIsInstance(header, pf.Header) self.assertEqual(pf.stringify(header), "Nice title") para = ret[1] self.assertIsInstance(para.content[0], pf.Str) self.assertIsInstance(para.content[1], pf.Space) self.assertIsInstance(para.content[2], pf.Str) self.assertEqual(para.content[0].text, "Lorem") self.assertEqual(para.content[2].text, "ipsum")
class TestHtml(unittest.TestCase): def setUp(self): self.environments = Environments() def test_handle_html(self): """html""" doc = pf.Doc(metadata={"lang": "en"}) html = r"""<p> <h3 class="start">Suitable browsers</h3> The following browsers can be used for the course: Firefox, Internet Explorer, Chrome, Safari, Opera.<br /> Some other browsers have difficulties rendering our unit pages correctly. <br /> We recommend using only the fully updated latest versions of these browsers. In particular, the course cannot be completed with obsolete browsers such as Internet Explorer 8 or earlier. </p>""" elem_content = r"\\begin{{html}}\n{}\n\\end{{html}}" "".format(html) doc.content.extend([pf.RawBlock(elem_content, format="latex")]) elem = doc.content[0] # this sets up elem.parent ret = self.environments.handle_html(html, [], elem) header = ret[0] self.assertIsInstance(header, pf.Header) self.assertEqual(header.content[0].text, "Suitable") self.assertEqual(header.content[2].text, "browsers") para = ret[1] self.assertIsInstance(para, pf.Para) self.assertEqual(len(para.content), 107) self.assertEqual(para.content[106].text, "earlier.")
class TestMsectionStart(unittest.TestCase): def setUp(self): self.doc = pf.Doc(metadata={"lang": "en"}) self.environments = Environments() self.elem_content = r""" \begin{MSectionStart} Lorem ipsum \end{MSectionStart}""" self.doc.content.extend( [pf.RawBlock(self.elem_content, format="latex")]) self.elem = self.doc.content[0] # this sets up elem.parent def test_msectionstart(self): """Should handle MSectionStart""" ret = self.environments.handle_msectionstart("Lorem ipsum", [], self.elem)[0] self.assertIsInstance(ret, pf.Para) self.assertIsInstance(ret.content[0], pf.Str) self.assertEqual(ret.content[0].text, "Lorem") self.assertIsInstance(ret.content[1], pf.Space) self.assertIsInstance(ret.content[2], pf.Str) self.assertEqual(ret.content[2].text, "ipsum")
def __init__(self, debug=False): self._debug = debug self._commands = Commands() self._environments = Environments()
def setUp(self): self.doc = pf.Doc(metadata={"lang": "en"}) self.environments = Environments()
def setUp(self): self.environments = Environments()