test_svg2pdf.py
74 lines
| 2.3 KiB
| text/x-python
|
PythonLexer
MinRK
|
r18580 | """Tests for the svg2pdf preprocessor""" | ||
Jonathan Frederic
|
r12034 | |||
MinRK
|
r18580 | # Copyright (c) IPython Development Team. | ||
Jonathan Frederic
|
r12034 | # Distributed under the terms of the Modified BSD License. | ||
from IPython.testing import decorators as dec | ||||
MinRK
|
r18605 | from IPython.nbformat import v4 as nbformat | ||
Jonathan Frederic
|
r12034 | |||
Paul Ivanov
|
r12219 | from .base import PreprocessorTestsBase | ||
from ..svg2pdf import SVG2PDFPreprocessor | ||||
Jonathan Frederic
|
r12034 | |||
Paul Ivanov
|
r12219 | class Testsvg2pdf(PreprocessorTestsBase): | ||
Jonathan Frederic
|
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): | ||||
MinRK
|
r18602 | """Build a reveal slides notebook in memory for use with tests. | ||
Paul Ivanov
|
r12219 | Overrides base in PreprocessorTestsBase""" | ||
Jonathan Frederic
|
r12034 | |||
MinRK
|
r18602 | outputs = [nbformat.new_output(output_type="image/svg+xml", output_svg=self.simple_svg)] | ||
Jonathan Frederic
|
r12034 | |||
slide_metadata = {'slideshow' : {'slide_type': 'slide'}} | ||||
subslide_metadata = {'slideshow' : {'slide_type': 'subslide'}} | ||||
MinRK
|
r18587 | cells=[nbformat.new_code_cell(source="", execution_count=1, outputs=outputs)] | ||
Jonathan Frederic
|
r12034 | |||
MinRK
|
r18580 | return nbformat.new_notebook(cells=cells) | ||
Jonathan Frederic
|
r12034 | |||
Paul Ivanov
|
r12219 | def build_preprocessor(self): | ||
"""Make an instance of a preprocessor""" | ||||
preprocessor = SVG2PDFPreprocessor() | ||||
preprocessor.enabled = True | ||||
return preprocessor | ||||
Jonathan Frederic
|
r12035 | |||
def test_constructor(self): | ||||
Paul Ivanov
|
r12219 | """Can a SVG2PDFPreprocessor be constructed?""" | ||
self.build_preprocessor() | ||||
Jonathan Frederic
|
r12039 | |||
Jonathan Frederic
|
r12034 | |||
@dec.onlyif_cmds_exist('inkscape') | ||||
def test_output(self): | ||||
Paul Ivanov
|
r12219 | """Test the output of the SVG2PDFPreprocessor""" | ||
Jonathan Frederic
|
r12039 | nb = self.build_notebook() | ||
res = self.build_resources() | ||||
Paul Ivanov
|
r12219 | preprocessor = self.build_preprocessor() | ||
nb, res = preprocessor(nb, res) | ||||
MinRK
|
r18602 | self.assertIn('application/pdf', nb.cells[0].outputs[0]) | ||