##// END OF EJS Templates
Rename texteditor files & folders to edit
Rename texteditor files & folders to edit

File last commit:

r18613:380a2e94
r19074:a613289c
Show More
test_latex.py
117 lines | 4.0 KiB | text/x-python | PythonLexer
Thomas Kluyver
Rework Latex test for nbconvert Python API...
r16744 """Tests for Latex exporter"""
Jonathan Frederic
Added exporter tests
r11480
Thomas Kluyver
Rework Latex test for nbconvert Python API...
r16744 # Copyright (c) IPython Development Team.
Jonathan Frederic
Added exporter tests
r11480 # Distributed under the terms of the Modified BSD License.
Thomas Kluyver
Rework Latex test for nbconvert Python API...
r16744 import os.path
import textwrap
Jessica B. Hamrick
Add regression test for latex color prompts
r18344 import re
Jonathan Frederic
Added exporter tests
r11480
from .base import ExportersTestsBase
from ..latex import LatexExporter
MinRK
Don't use nbformat.current in nbconvert
r18605 from IPython.nbformat import write
from IPython.nbformat import v4
Paul Ivanov
skip tests that require pandoc
r11714 from IPython.testing.decorators import onlyif_cmds_exist
Thomas Kluyver
Rework Latex test for nbconvert Python API...
r16744 from IPython.utils.tempdir import TemporaryDirectory
Jonathan Frederic
Added exporter tests
r11480
Jonathan Frederic
s/Test_/Test
r11494 class TestLatexExporter(ExportersTestsBase):
Jonathan Frederic
Added exporter tests
r11480 """Contains test functions for latex.py"""
MinRK
test raw cell inclusion based on raw_format metadata
r13665 exporter_class = LatexExporter
should_include_raw = ['latex']
Jonathan Frederic
Added exporter tests
r11480 def test_constructor(self):
"""
Can a LatexExporter be constructed?
"""
LatexExporter()
Paul Ivanov
skip tests that require pandoc
r11714 @onlyif_cmds_exist('pandoc')
Jonathan Frederic
Added exporter tests
r11480 def test_export(self):
"""
Can a LatexExporter export something?
"""
(output, resources) = LatexExporter().from_filename(self._get_notebook())
Paul Ivanov
skip tests that require pandoc
r11714 assert len(output) > 0
Jonathan Frederic
Updated tests to try flavors
r11738
Jonathan Frederic
Add @ivanov 's logic to PANDOC tests
r11749 @onlyif_cmds_exist('pandoc')
Jonathan Frederic
Fixed tests
r11740 def test_export_book(self):
Jonathan Frederic
Updated tests to try flavors
r11738 """
Jonathan Frederic
s/book/report in exporter and exporter tests
r12737 Can a LatexExporter export using 'report' template?
Jonathan Frederic
Updated tests to try flavors
r11738 """
Jonathan Frederic
s/book/report in exporter and exporter tests
r12737 (output, resources) = LatexExporter(template_file='report').from_filename(self._get_notebook())
Jonathan Frederic
Updated tests to try flavors
r11738 assert len(output) > 0
Jonathan Frederic
Add @ivanov 's logic to PANDOC tests
r11749 @onlyif_cmds_exist('pandoc')
Jonathan Frederic
Updated tests to try flavors
r11738 def test_export_basic(self):
"""
Jonathan Frederic
Updated latex exporter tests
r12730 Can a LatexExporter export using 'article' template?
Jonathan Frederic
Updated tests to try flavors
r11738 """
Jonathan Frederic
Updated latex exporter tests
r12730 (output, resources) = LatexExporter(template_file='article').from_filename(self._get_notebook())
Jonathan Frederic
Updated tests to try flavors
r11738 assert len(output) > 0
Jonathan Frederic
Add @ivanov 's logic to PANDOC tests
r11749 @onlyif_cmds_exist('pandoc')
Jonathan Frederic
Fixed tests
r11740 def test_export_article(self):
Jonathan Frederic
Updated tests to try flavors
r11738 """
Jonathan Frederic
flavor=template
r11745 Can a LatexExporter export using 'article' template?
Jonathan Frederic
Updated tests to try flavors
r11738 """
MinRK
don't allow 'template' to specify 'template_file'...
r11852 (output, resources) = LatexExporter(template_file='article').from_filename(self._get_notebook())
Thomas Kluyver
Rework Latex test for nbconvert Python API...
r16744 assert len(output) > 0
@onlyif_cmds_exist('pandoc')
def test_very_long_cells(self):
"""
Torture test that long cells do not cause issues
"""
lorem_ipsum_text = textwrap.dedent("""\
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec
dignissim, ipsum non facilisis tempus, dui felis tincidunt metus,
nec pulvinar neque odio eget risus. Nulla nisi lectus, cursus
suscipit interdum at, ultrices sit amet orci. Mauris facilisis
imperdiet elit, vitae scelerisque ipsum dignissim non. Integer
consequat malesuada neque sit amet pulvinar. Curabitur pretium
ut turpis eget aliquet. Maecenas sagittis lacus sed lectus
volutpat, eu adipiscing purus pulvinar. Maecenas consequat
luctus urna, eget cursus quam mollis a. Aliquam vitae ornare
erat, non hendrerit urna. Sed eu diam nec massa egestas pharetra
at nec tellus. Fusce feugiat lacus quis urna sollicitudin volutpat.
Quisque at sapien non nibh feugiat tempus ac ultricies purus.
""")
lorem_ipsum_text = lorem_ipsum_text.replace("\n"," ") + "\n\n"
large_lorem_ipsum_text = "".join([lorem_ipsum_text]*3000)
notebook_name = "lorem_ipsum_long.ipynb"
MinRK
Don't use nbformat.current in nbconvert
r18605 nb = v4.new_notebook(
MinRK
update nbconvert to nbformat 4
r18580 cells=[
MinRK
Don't use nbformat.current in nbconvert
r18605 v4.new_markdown_cell(source=large_lorem_ipsum_text)
Thomas Kluyver
Rework Latex test for nbconvert Python API...
r16744 ]
)
with TemporaryDirectory() as td:
nbfile = os.path.join(td, notebook_name)
with open(nbfile, 'w') as f:
Min RK
fix backward `f, nb` args for nbformat.write
r18613 write(nb, f, 4)
Thomas Kluyver
Rework Latex test for nbconvert Python API...
r16744
MinRK
Don't use nbformat.current in nbconvert
r18605 (output, resources) = LatexExporter(template_file='article').from_filename(nbfile)
Thomas Kluyver
Rework Latex test for nbconvert Python API...
r16744 assert len(output) > 0
Jessica B. Hamrick
Add regression test for latex color prompts
r18344
@onlyif_cmds_exist('pandoc')
def test_prompt_number_color(self):
"""
Does LatexExporter properly format input and output prompts in color?
"""
Jessica B. Hamrick
Have prompt number tests use a special prompt number notebook
r18347 (output, resources) = LatexExporter().from_filename(
self._get_notebook(nb_name="prompt_numbers.ipynb"))
Jessica B. Hamrick
Add regression test for latex color prompts
r18344 in_regex = r"In \[\{\\color\{incolor\}(.*)\}\]:"
out_regex = r"Out\[\{\\color\{outcolor\}(.*)\}\]:"
Jessica B. Hamrick
Make prompt numbers notebook more specific
r18349 ins = ["2", "10", " ", " ", "*", "0"]
outs = ["10"]
Jessica B. Hamrick
Add regression test for latex color prompts
r18344
assert re.findall(in_regex, output) == ins
assert re.findall(out_regex, output) == outs