test_html.py
77 lines
| 2.5 KiB
| text/x-python
|
PythonLexer
MinRK
|
r13665 | """Tests for HTMLExporter""" | ||
Jonathan Frederic
|
r11480 | |||
#----------------------------------------------------------------------------- | ||||
# Copyright (c) 2013, the IPython Development Team. | ||||
# | ||||
# Distributed under the terms of the Modified BSD License. | ||||
# | ||||
# The full license is in the file COPYING.txt, distributed with this software. | ||||
#----------------------------------------------------------------------------- | ||||
#----------------------------------------------------------------------------- | ||||
# Imports | ||||
#----------------------------------------------------------------------------- | ||||
from .base import ExportersTestsBase | ||||
Jonathan Frederic
|
r11740 | from ..html import HTMLExporter | ||
MinRK
|
r15439 | from IPython.testing.decorators import onlyif_any_cmd_exists | ||
Jessica B. Hamrick
|
r18342 | import re | ||
Jonathan Frederic
|
r11480 | |||
#----------------------------------------------------------------------------- | ||||
# Class | ||||
#----------------------------------------------------------------------------- | ||||
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 | |||
MinRK
|
r15439 | @onlyif_any_cmd_exists('nodejs', 'node', 'pandoc') | ||
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 | |||
MinRK
|
r15439 | @onlyif_any_cmd_exists('nodejs', 'node', 'pandoc') | ||
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 | ||
MinRK
|
r15439 | @onlyif_any_cmd_exists('nodejs', 'node', 'pandoc') | ||
Jonathan Frederic
|
r11738 | 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 | @onlyif_any_cmd_exists('nodejs', 'node', 'pandoc') | ||
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 | ||||