base.py
54 lines
| 2.0 KiB
| text/x-python
|
PythonLexer
MinRK
|
r13665 | """Base TestCase class for testing Exporters""" | ||
Jonathan Frederic
|
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 | ||||
MinRK
|
r15439 | from IPython.testing.decorators import onlyif_any_cmd_exists | ||
MinRK
|
r13665 | |||
Jonathan Frederic
|
r11480 | from ...tests.base import TestsBase | ||
#----------------------------------------------------------------------------- | ||||
# Class | ||||
#----------------------------------------------------------------------------- | ||||
MinRK
|
r13678 | all_raw_mimetypes = { | ||
Thomas Kluyver
|
r13832 | 'text/x-python', | ||
MinRK
|
r13678 | 'text/markdown', | ||
'text/html', | ||||
'text/restructuredtext', | ||||
'text/latex', | ||||
} | ||||
MinRK
|
r13665 | |||
Jonathan Frederic
|
r11480 | class ExportersTestsBase(TestsBase): | ||
"""Contains base test functions for exporters""" | ||||
MinRK
|
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) | ||||
MinRK
|
r15439 | @onlyif_any_cmd_exists('nodejs', 'node', 'pandoc') | ||
MinRK
|
r13665 | def test_raw_cell_inclusion(self): | ||
MinRK
|
r13678 | """test raw cell inclusion based on raw_mimetype metadata""" | ||
MinRK
|
r13665 | 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) | ||||
MinRK
|
r13678 | self.assertIn('no raw_mimetype metadata', output) | ||
for exc in all_raw_mimetypes.difference(self.should_include_raw): | ||||
MinRK
|
r13665 | self.assertNotIn('raw %s' % exc, output, "should exclude %s" % exc) | ||
self.assertNotIn('never be included', output) | ||||