##// END OF EJS Templates
Add regression tests for live notebook
Add regression tests for live notebook

File last commit:

r12221:017ada76
r18341:9e6b62e8
Show More
test_svg2pdf.py
90 lines | 3.0 KiB | text/x-python | PythonLexer
Jonathan Frederic
Add svg2pdf transformer tests
r12034 """
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 Module with tests for the svg2pdf preprocessor
Jonathan Frederic
Add svg2pdf transformer tests
r12034 """
#-----------------------------------------------------------------------------
# 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.testing import decorators as dec
from IPython.nbformat import current as nbformat
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 from .base import PreprocessorTestsBase
from ..svg2pdf import SVG2PDFPreprocessor
Jonathan Frederic
Add svg2pdf transformer tests
r12034
#-----------------------------------------------------------------------------
# Class
#-----------------------------------------------------------------------------
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 class Testsvg2pdf(PreprocessorTestsBase):
Jonathan Frederic
Add svg2pdf transformer tests
r12034 """Contains test functions for svg2pdf.py"""
simple_svg = """<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
version="1.0"
x="0.00000000"
y="0.00000000"
width="500.00000"
height="500.00000"
id="svg2">
<defs
id="defs4" />
<g
id="layer1">
<rect
width="300.00000"
height="300.00000"
x="100.00000"
y="100.00000"
style="opacity:1.0000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:8.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.00000000;stroke-opacity:1.0000000"
id="rect5719" />
</g>
</svg>"""
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
Add svg2pdf transformer tests
r12034
outputs = [nbformat.new_output(output_type="svg", output_svg=self.simple_svg)]
slide_metadata = {'slideshow' : {'slide_type': 'slide'}}
subslide_metadata = {'slideshow' : {'slide_type': 'subslide'}}
cells=[nbformat.new_code_cell(input="", prompt_number=1, outputs=outputs)]
worksheets = [nbformat.new_worksheet(name="worksheet1", cells=cells)]
return nbformat.new_notebook(name="notebook1", worksheets=worksheets)
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 def build_preprocessor(self):
"""Make an instance of a preprocessor"""
preprocessor = SVG2PDFPreprocessor()
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 SVG2PDFPreprocessor be constructed?"""
self.build_preprocessor()
Jonathan Frederic
Expanded transformer pass line, for easier debugging
r12039
Jonathan Frederic
Add svg2pdf transformer tests
r12034
@dec.onlyif_cmds_exist('inkscape')
def test_output(self):
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 """Test the output of the SVG2PDFPreprocessor"""
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
Add svg2pdf transformer tests
r12034 assert 'svg' in nb.worksheets[0].cells[0].outputs[0]