Exemple #1
0
 def test_headings(self):
     # Simple heading by itself
     text = latex.rst_to_latex(
         "Hello, world\n------------\n\nGoodbye, world")
     self.assertEqual("\\section*{Hello, world}\n", text)
     # Simple heading with leading whitespace
     text = latex.rst_to_latex("    Hello, world\n    ============\n")
     self.assertEqual("\\section*{Hello, world}\n", text)
     # Heading with text after it
     text = latex.rst_to_latex(
         "Hello, world\n============\n\nThis is some text")
     self.assertEqual("\\section*{Hello, world}\n\nThis is some text", text)
     # Heading with text before it
     text = latex.rst_to_latex(
         "This is a paragraph\n\nHello, world\n============\n")
     self.assertEqual("This is a paragraph\n\n\\section*{Hello, world}\n",
                      text)
     # Check that levels of headings are parsed appropriately
     text = latex.rst_to_latex("Hello, world\n^^^^^^^^^^^^\n")
     self.assertEqual("\\subsubsection*{Hello, world}\n", text)
     text = latex.rst_to_latex("Hello, world\n^^^^^^^^^^^^\n",
                               top_heading_level=3)
     self.assertEqual("\\subparagraph*{Hello, world}\n", text)
     # This is a bad heading missing with all the underline on one line
     text = latex.rst_to_latex("Hello, world^^^^^^^^^^^^\n")
     self.assertEqual("Hello, world\\^\\^\\^\\^\\^\\^\\^\\^\\^\\^\\^\\^\n",
                      text)
Exemple #2
0
 def test_bullet_list(self):
     tex = latex.rst_to_latex("\n- Hello\n- World\n\n")
     expected_tex = "\\begin{itemize}\n\\item Hello\n\n\\item World\n\\end{itemize}"
     self.assertEqual(expected_tex, tex.strip("\n"))
     # Other bullet characters
     tex = latex.rst_to_latex("\n* Hello\n* World\n\n")
     self.assertEqual(expected_tex, tex.strip("\n"))
     tex = latex.rst_to_latex("\n+ Hello\n+ World\n\n")
     self.assertEqual(expected_tex, tex.strip("\n"))
     # A real list taken from a docstring
     real_list = """
     - Secondhand (you have heard of the target) - +5
     - Firsthand (you have met the target) - +0
     - Familiar (you know the target well) - -5
     
     """
     tex = latex.rst_to_latex(real_list)
     self.assertIn("\\begin{itemize}", tex)
Exemple #3
0
 def test_multiline_bullet_list(self):
     md_list = """
     - Secondhand (you have heard
       of the target) - +5
     - Firsthand (you have met
       the target) - +0
     - Familiar (you know the target
       well) - -5
     
     """
     tex = latex.rst_to_latex(md_list)
     self.assertIn("\\begin{itemize}", tex)
Exemple #4
0
 def test_simple_table(self):
     table_rst = """
         =====  =====  =======
         A      B      A and B
         =====  =====  =======
         False  False  False
         True   False  False
         False  True   False
         True   True   True
         =====  =====  =======
     """
     tex = latex.rst_to_latex(table_rst)
     # Check begin/end environment is fixed
     self.assertNotIn("longtable", tex)
     self.assertIn("supertabular", tex)
     # Check headers and footers are fixed
     self.assertNotIn("endfoot", tex)
     self.assertNotIn("endhead", tex)
     self.assertNotIn("endfirsthead", tex)
     # Check that fancy decorations uses the DndTable environment
     tex = latex.rst_to_latex(table_rst, use_dnd_decorations=True)
     self.assertIn(r"\begin{DndTable}{l l l }", tex)
Exemple #5
0
 def test_simple_table(self):
     table_rst = """
         =====  =====  =======
         A      B      A and B
         =====  =====  =======
         False  False  False
         True   False  False
         False  True   False
         True   True   True
         =====  =====  =======
     """
     tex = latex.rst_to_latex(table_rst)
     # Check begin/end environment is fixed
     self.assertNotIn("longtable", tex)
     self.assertIn("supertabular", tex)
     # Check headers and footers are fixed
     self.assertNotIn("endfoot", tex)
     self.assertNotIn("endhead", tex)
     self.assertNotIn("endfirsthead", tex)
Exemple #6
0
 def test_rst_bold(self):
     text = latex.rst_to_latex("**hello**")
     self.assertEqual(text, "\n\\textbf{hello}\n")
Exemple #7
0
 def test_literal_backslash(self):
     text = latex.rst_to_latex(r"\\")
     self.assertEqual(r"\textbackslash{}", text.strip("\n"))
Exemple #8
0
 def test_verbatim(self):
     text = latex.rst_to_latex("``hello, world``")
     self.assertIn(r"\texttt{hello, world}", text)
Exemple #9
0
 def test_no_text(self):
     text = latex.rst_to_latex(None)
     self.assertEqual(text, "")
Exemple #10
0
 def test_hit_dice(self):
     text = latex.rst_to_latex("1d6+3")
     self.assertEqual(text.strip("\n"), "\\texttt{1d6+3}")
Exemple #11
0
 def test_rst_all_features(self):
     for feature in features.all_features():
         tex = latex.rst_to_latex(feature.__doc__)
         self.assertNotIn(
             "DUadmonition", tex, f"feature {feature} is not valid reStructured text"
         )
Exemple #12
0
 def test_rst_all_spells(self):
     for spell in spells.all_spells():
         tex = latex.rst_to_latex(spell.__doc__)
         self.assertNotIn(
             "DUadmonition", tex, f"spell {spell} is not valid reStructured text"
         )