##// END OF EJS Templates
switching to Popen to be python 2.6 friendly
switching to Popen to be python 2.6 friendly

File last commit:

r6264:e90342fe
r6291:1c214941
Show More
test_simple.py
69 lines | 2.0 KiB | text/x-python | PythonLexer
from nbconvert import ConverterRST, main
import nose.tools as nt
import os
import glob
from IPython.nbformat import current as nbformat
fname = 'tests/test.ipynb'
out_fname = 'tests/test.rst'
def clean_dir():
"Remove .rst files created during conversion"
map(os.remove, glob.glob("./tests/*.rst"))
map(os.remove, glob.glob("./tests/*.png"))
map(os.remove, glob.glob("./tests/*.html"))
@nt.with_setup(clean_dir, clean_dir)
def test_simple():
c = ConverterRST(fname)
f = c.render()
nt.assert_true('rst' in f, 'changed file extension to rst')
@nt.with_setup(clean_dir, clean_dir)
def test_main():
"""
Test main entry point
"""
main(fname)
nt.assert_true(os.path.exists(out_fname))
def test_render_heading():
""" Unit test for cell type "heading" """
# Generate and test heading cells level 1-6
for level in xrange(1, 7):
cell = {
'cell_type': 'heading',
'level' : level,
'source' : ['Test for heading type H{0}'.format(level)]
}
# Convert cell dictionaries to NotebookNode
cell_nb = nbformat.NotebookNode(cell)
# Make sure "source" attribute is uniconde not list.
# For some reason, creating a NotebookNode manually like
# this isn't converting source to a string like using
# the create-from-file routine.
if type(cell_nb.source) is list:
cell_nb.source = '\n'.join(cell_nb.source)
# Render to rst
c = ConverterRST('')
rst_list = c.render_heading(cell_nb)
nt.assert_true(isinstance(rst_list, list)) # render should return a list
rst_str = "".join(rst_list)
# Confirm rst content
chk_str = "Test for heading type H{0}\n{1}\n".format(
level, c.heading_level[level] * 24)
nt.assert_equal(rst_str, chk_str)
@nt.with_setup(clean_dir, clean_dir)
def test_main_html():
"""
Test main entry point
"""
main(fname, format='html')
nt.assert_true(os.path.exists('tests/test.html'))