base.py
48 lines
| 1.9 KiB
| text/x-python
|
PythonLexer
|
r13665 | """Base TestCase class for testing Exporters""" | ||
|
r11480 | |||
#----------------------------------------------------------------------------- | ||||
# 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 | ||||
#----------------------------------------------------------------------------- | ||||
import os | ||||
|
r13665 | from IPython.testing.decorators import onlyif_cmds_exist | ||
|
r11480 | from ...tests.base import TestsBase | ||
#----------------------------------------------------------------------------- | ||||
# Class | ||||
#----------------------------------------------------------------------------- | ||||
|
r13665 | all_raw_formats = set(['markdown', 'html', 'rst', 'python', 'latex']) | ||
|
r11480 | class ExportersTestsBase(TestsBase): | ||
"""Contains base test functions for exporters""" | ||||
|
r13665 | |||
exporter_class = None | ||||
should_include_raw = None | ||||
def _get_notebook(self, nb_name='notebook2.ipynb'): | ||||
return os.path.join(self._get_files_path(), nb_name) | ||||
@onlyif_cmds_exist('pandoc') | ||||
def test_raw_cell_inclusion(self): | ||||
"""test raw cell inclusion based on raw_format metadata""" | ||||
if self.should_include_raw is None: | ||||
return | ||||
exporter = self.exporter_class() | ||||
(output, resources) = exporter.from_filename(self._get_notebook('rawtest.ipynb')) | ||||
for inc in self.should_include_raw: | ||||
self.assertIn('raw %s' % inc, output, "should include %s" % inc) | ||||
self.assertIn('no raw_format metadata', output) | ||||
for exc in all_raw_formats.difference(self.should_include_raw): | ||||
self.assertNotIn('raw %s' % exc, output, "should exclude %s" % exc) | ||||
self.assertNotIn('never be included', output) | ||||