test_html.py
85 lines
| 2.6 KiB
| text/x-python
|
PythonLexer
MinRK
|
r13665 | """Tests for HTMLExporter""" | ||
Jonathan Frederic
|
r11480 | |||
Min RK
|
r20734 | # Copyright (c) IPython Development Team. | ||
Jonathan Frederic
|
r11480 | # Distributed under the terms of the Modified BSD License. | ||
from .base import ExportersTestsBase | ||||
Jonathan Frederic
|
r11740 | from ..html import HTMLExporter | ||
Min RK
|
r20757 | from IPython.nbformat import v4 | ||
Jessica B. Hamrick
|
r18342 | import re | ||
Jonathan Frederic
|
r11480 | |||
Jonathan Frederic
|
r11740 | class TestHTMLExporter(ExportersTestsBase): | ||
MinRK
|
r13665 | """Tests for HTMLExporter""" | ||
exporter_class = HTMLExporter | ||||
should_include_raw = ['html'] | ||||
Jonathan Frederic
|
r11480 | |||
def test_constructor(self): | ||||
""" | ||||
Jonathan Frederic
|
r11740 | Can a HTMLExporter be constructed? | ||
Jonathan Frederic
|
r11480 | """ | ||
Jonathan Frederic
|
r11740 | HTMLExporter() | ||
Jonathan Frederic
|
r11480 | |||
Jonathan Frederic
|
r11749 | |||
Jonathan Frederic
|
r11480 | def test_export(self): | ||
""" | ||||
Jonathan Frederic
|
r11740 | Can a HTMLExporter export something? | ||
Jonathan Frederic
|
r11480 | """ | ||
Jonathan Frederic
|
r11740 | (output, resources) = HTMLExporter().from_filename(self._get_notebook()) | ||
Paul Ivanov
|
r11714 | assert len(output) > 0 | ||
Jonathan Frederic
|
r11738 | |||
def test_export_basic(self): | ||||
""" | ||||
Jonathan Frederic
|
r11745 | Can a HTMLExporter export using the 'basic' template? | ||
Jonathan Frederic
|
r11738 | """ | ||
MinRK
|
r11852 | (output, resources) = HTMLExporter(template_file='basic').from_filename(self._get_notebook()) | ||
Jonathan Frederic
|
r11738 | assert len(output) > 0 | ||
def test_export_full(self): | ||||
""" | ||||
Jonathan Frederic
|
r11745 | Can a HTMLExporter export using the 'full' template? | ||
Jonathan Frederic
|
r11738 | """ | ||
MinRK
|
r11852 | (output, resources) = HTMLExporter(template_file='full').from_filename(self._get_notebook()) | ||
Jonathan Frederic
|
r11738 | assert len(output) > 0 | ||
MinRK
|
r13665 | |||
Jessica B. Hamrick
|
r18342 | def test_prompt_number(self): | ||
""" | ||||
Does HTMLExporter properly format input and output prompts? | ||||
""" | ||||
Jessica B. Hamrick
|
r18347 | (output, resources) = HTMLExporter(template_file='full').from_filename( | ||
self._get_notebook(nb_name="prompt_numbers.ipynb")) | ||||
Jessica B. Hamrick
|
r18342 | in_regex = r"In \[(.*)\]:" | ||
out_regex = r"Out\[(.*)\]:" | ||||
Jessica B. Hamrick
|
r18349 | ins = ["2", "10", " ", " ", "*", "0"] | ||
outs = ["10"] | ||||
Jessica B. Hamrick
|
r18342 | |||
assert re.findall(in_regex, output) == ins | ||||
assert re.findall(out_regex, output) == outs | ||||
Johannes Feist
|
r19919 | |||
def test_png_metadata(self): | ||||
""" | ||||
Does HTMLExporter with the 'basic' template treat pngs with width/height metadata correctly? | ||||
""" | ||||
(output, resources) = HTMLExporter(template_file='basic').from_filename( | ||||
self._get_notebook(nb_name="pngmetadata.ipynb")) | ||||
assert len(output) > 0 | ||||
Min RK
|
r20757 | |||
def test_javascript_output(self): | ||||
nb = v4.new_notebook( | ||||
cells=[ | ||||
v4.new_code_cell( | ||||
outputs=[v4.new_output( | ||||
output_type='display_data', | ||||
data={ | ||||
'application/javascript': "javascript_output();" | ||||
} | ||||
)] | ||||
) | ||||
] | ||||
) | ||||
(output, resources) = HTMLExporter(template_file='basic').from_notebook_node(nb) | ||||
self.assertIn('javascript_output', output) | ||||