12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- """
- Module with tests for the clearoutput preprocessor.
- """
- # Copyright (c) IPython Development Team.
- # Distributed under the terms of the Modified BSD License.
- from .base import PreprocessorTestsBase
- from ..clearoutput import ClearOutputPreprocessor
- class TestClearOutput(PreprocessorTestsBase):
- """Contains test functions for clearoutput.py"""
- def build_notebook(self):
- notebook = super(TestClearOutput, self).build_notebook()
- # Add a test field to the first cell
- if 'metadata' not in notebook.cells[0]:
- notebook.cells[0].metadata = {}
- notebook.cells[0].metadata['test_field'] = 'test_value'
- return notebook
- def build_preprocessor(self):
- """Make an instance of a preprocessor"""
- preprocessor = ClearOutputPreprocessor()
- preprocessor.enabled = True
- return preprocessor
- def test_constructor(self):
- """Can a ClearOutputPreprocessor be constructed?"""
- self.build_preprocessor()
- def test_output(self):
- """Test the output of the ClearOutputPreprocessor"""
- for remove_test_field in [False, True]:
- nb = self.build_notebook()
- res = self.build_resources()
- preprocessor = self.build_preprocessor()
- # Also remove the test field in addition to defaults
- if remove_test_field:
- preprocessor.remove_metadata_fields.add('test_field')
- nb, res = preprocessor(nb, res)
- assert nb.cells[0].outputs == []
- assert nb.cells[0].execution_count is None
- if 'metadata' in nb.cells[0]:
- for field in preprocessor.remove_metadata_fields:
- assert field not in nb.cells[0].metadata
- # Ensure the test field is only removed when added to the traitlet
- assert remove_test_field or 'test_field' in nb.cells[0].metadata
|