##// END OF EJS Templates
release 2.4.0
release 2.4.0

File last commit:

r13849:b3a7ace4
r20264:b11c1c3e
Show More
test_revealhelp.py
93 lines | 3.6 KiB | text/x-python | PythonLexer
Jonathan Frederic
Added revealhelp transformer tests
r12032 """
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 Module with tests for the revealhelp preprocessor
Jonathan Frederic
Added revealhelp transformer tests
r12032 """
#-----------------------------------------------------------------------------
# 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 IPython.nbformat import current as nbformat
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 from .base import PreprocessorTestsBase
from ..revealhelp import RevealHelpPreprocessor
Jonathan Frederic
Added revealhelp transformer tests
r12032
#-----------------------------------------------------------------------------
# Class
#-----------------------------------------------------------------------------
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 class Testrevealhelp(PreprocessorTestsBase):
Jonathan Frederic
Added revealhelp transformer tests
r12032 """Contains test functions for revealhelp.py"""
def build_notebook(self):
"""Build a reveal slides notebook in memory for use with tests.
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 Overrides base in PreprocessorTestsBase"""
Jonathan Frederic
Added revealhelp transformer tests
r12032
outputs = [nbformat.new_output(output_type="stream", stream="stdout", output_text="a")]
slide_metadata = {'slideshow' : {'slide_type': 'slide'}}
subslide_metadata = {'slideshow' : {'slide_type': 'subslide'}}
cells=[nbformat.new_code_cell(input="", prompt_number=1, outputs=outputs),
nbformat.new_text_cell('markdown', source="", metadata=slide_metadata),
nbformat.new_code_cell(input="", prompt_number=2, outputs=outputs),
nbformat.new_text_cell('markdown', source="", metadata=slide_metadata),
nbformat.new_text_cell('markdown', source="", metadata=subslide_metadata)]
worksheets = [nbformat.new_worksheet(name="worksheet1", cells=cells)]
return nbformat.new_notebook(name="notebook1", worksheets=worksheets)
Jonathan Frederic
Fixes small things pointed out by @minrk
r12035
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 def build_preprocessor(self):
"""Make an instance of a preprocessor"""
preprocessor = RevealHelpPreprocessor()
preprocessor.enabled = True
return preprocessor
Jonathan Frederic
Fixes small things pointed out by @minrk
r12035
def test_constructor(self):
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 """Can a RevealHelpPreprocessor be constructed?"""
self.build_preprocessor()
Jonathan Frederic
Added revealhelp transformer tests
r12032
def test_reveal_attribute(self):
"""Make sure the reveal url_prefix resources is set"""
Jonathan Frederic
Expanded transformer pass line, for easier debugging
r12039 nb = self.build_notebook()
res = self.build_resources()
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 preprocessor = self.build_preprocessor()
nb, res = preprocessor(nb, res)
Jonathan Frederic
Added revealhelp transformer tests
r12032 assert 'reveal' in res
assert 'url_prefix' in res['reveal']
def test_reveal_output(self):
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 """Make sure that the reveal preprocessor """
Jonathan Frederic
Expanded transformer pass line, for easier debugging
r12039 nb = self.build_notebook()
res = self.build_resources()
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 preprocessor = self.build_preprocessor()
nb, res = preprocessor(nb, res)
Jonathan Frederic
Added revealhelp transformer tests
r12032 cells = nb.worksheets[0].cells
# Make sure correct metadata tags are available on every cell.
Jonathan Frederic
Fixes small things pointed out by @minrk
r12035 for cell in cells:
assert 'slide_type' in cell.metadata
Jonathan Frederic
Added revealhelp transformer tests
r12032
# Make sure slide end is only applied to the cells preceeding slide
# cells.
assert 'slide_helper' not in cells[1].metadata
# Verify 'slide-end'
assert 'slide_helper' in cells[0].metadata
self.assertEqual(cells[0].metadata['slide_helper'], 'slide_end')
assert 'slide_helper' in cells[2].metadata
self.assertEqual(cells[2].metadata['slide_helper'], 'slide_end')
assert 'slide_helper' in cells[3].metadata
self.assertEqual(cells[3].metadata['slide_helper'], 'subslide_end')