text: """Base TestCase class for testing Exporters"""
  
  #-----------------------------------------------------------------------------
  # 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
  
  from IPython.testing.decorators import onlyif_any_cmd_exists
  
  from ...tests.base import TestsBase
  
  #-----------------------------------------------------------------------------
  # Class
  #-----------------------------------------------------------------------------
  
  all_raw_mimetypes = {
      'text/x-python',
      'text/markdown',
      'text/html',
      'text/restructuredtext',
      'text/latex',
  }
  
  class ExportersTestsBase(TestsBase):
      """Contains base test functions for exporters"""
      
      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_any_cmd_exists('nodejs', 'node', 'pandoc')
      def test_raw_cell_inclusion(self):
          """test raw cell inclusion based on raw_mimetype 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_mimetype metadata', output)
          for exc in all_raw_mimetypes.difference(self.should_include_raw):
              self.assertNotIn('raw %s' % exc, output, "should exclude %s" % exc)
          self.assertNotIn('never be included', output)
  