123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- """Tests for RSTExporter"""
- # Copyright (c) IPython Development Team.
- # Distributed under the terms of the Modified BSD License.
- import io
- import re
- import nbformat
- from nbformat import v4
- from .base import ExportersTestsBase
- from ..rst import RSTExporter
- from ...tests.utils import onlyif_cmds_exist
- class TestRSTExporter(ExportersTestsBase):
- """Tests for RSTExporter"""
- exporter_class = RSTExporter
- should_include_raw = ['rst']
- def test_constructor(self):
- """
- Can a RSTExporter be constructed?
- """
- RSTExporter()
- @onlyif_cmds_exist('pandoc')
- def test_export(self):
- """
- Can a RSTExporter export something?
- """
- (output, resources) = RSTExporter().from_filename(self._get_notebook())
- assert len(output) > 0
- @onlyif_cmds_exist('pandoc')
- def test_empty_code_cell(self):
- """No empty code cells in rst"""
- nbname = self._get_notebook()
- with io.open(nbname, encoding='utf8') as f:
- nb = nbformat.read(f, 4)
- exporter = self.exporter_class()
- (output, resources) = exporter.from_notebook_node(nb)
- # add an empty code cell
- nb.cells.append(
- v4.new_code_cell(source="")
- )
- (output2, resources) = exporter.from_notebook_node(nb)
- # adding an empty code cell shouldn't change output
- self.assertEqual(output.strip(), output2.strip())
- @onlyif_cmds_exist('pandoc')
- def test_png_metadata(self):
- """
- Does RSTExporter treat pngs with width/height metadata correctly?
- """
- (output, resources) = RSTExporter().from_filename(
- self._get_notebook(nb_name="pngmetadata.ipynb"))
- assert len(output) > 0
- check_for_png = re.compile(
- r'.. image::.*?\n\s+(.*?)\n\s*\n',
- re.DOTALL)
- result = check_for_png.search(output)
- assert result is not None
- attr_string = result.group(1)
- assert ':width:' in attr_string
- assert ':height:' in attr_string
- assert 'px' in attr_string
|