test_extractoutput.py
58 lines
| 2.2 KiB
| text/x-python
|
PythonLexer
MinRK
|
r18580 | """Tests for the extractoutput preprocessor""" | ||
Jonathan Frederic
|
r12029 | |||
MinRK
|
r18580 | # Copyright (c) IPython Development Team. | ||
Jonathan Frederic
|
r12029 | # Distributed under the terms of the Modified BSD License. | ||
Paul Ivanov
|
r12219 | from .base import PreprocessorTestsBase | ||
from ..extractoutput import ExtractOutputPreprocessor | ||||
Jonathan Frederic
|
r12029 | |||
Paul Ivanov
|
r12219 | class TestExtractOutput(PreprocessorTestsBase): | ||
Jonathan Frederic
|
r12029 | """Contains test functions for extractoutput.py""" | ||
Paul Ivanov
|
r12219 | def build_preprocessor(self): | ||
"""Make an instance of a preprocessor""" | ||||
preprocessor = ExtractOutputPreprocessor() | ||||
MinRK
|
r18580 | preprocessor.extract_output_types = {'text/plain', 'image/png', 'application/pdf'} | ||
Paul Ivanov
|
r12219 | preprocessor.enabled = True | ||
return preprocessor | ||||
Jonathan Frederic
|
r12035 | |||
def test_constructor(self): | ||||
Paul Ivanov
|
r12219 | """Can a ExtractOutputPreprocessor be constructed?""" | ||
self.build_preprocessor() | ||||
Jonathan Frederic
|
r12029 | |||
def test_output(self): | ||||
Paul Ivanov
|
r12219 | """Test the output of the ExtractOutputPreprocessor""" | ||
Jonathan Frederic
|
r12039 | nb = self.build_notebook() | ||
res = self.build_resources() | ||||
Paul Ivanov
|
r12219 | preprocessor = self.build_preprocessor() | ||
nb, res = preprocessor(nb, res) | ||||
Jonathan Frederic
|
r12029 | # Check if text was extracted. | ||
MinRK
|
r18580 | output = nb.cells[0].outputs[1] | ||
MinRK
|
r18602 | self.assertIn('filenames', output.metadata) | ||
self.assertIn('text/plain', output.metadata.filenames) | ||||
MinRK
|
r18589 | text_filename = output.metadata.filenames['text/plain'] | ||
Jonathan Frederic
|
r12029 | |||
# Check if png was extracted. | ||||
MinRK
|
r18580 | output = nb.cells[0].outputs[6] | ||
MinRK
|
r18602 | self.assertIn('filenames', output.metadata) | ||
self.assertIn('image/png', output.metadata.filenames) | ||||
MinRK
|
r18589 | png_filename = output.metadata.filenames['image/png'] | ||
MinRK
|
r15386 | |||
# Check that pdf was extracted | ||||
MinRK
|
r18580 | output = nb.cells[0].outputs[7] | ||
MinRK
|
r18602 | self.assertIn('filenames', output.metadata) | ||
self.assertIn('application/pdf', output.metadata.filenames) | ||||
MinRK
|
r18589 | pdf_filename = output.metadata.filenames['application/pdf'] | ||
Jonathan Frederic
|
r12029 | |||
# Verify text output | ||||
MinRK
|
r18602 | self.assertIn(text_filename, res['outputs']) | ||
Jonathan Frederic
|
r12038 | self.assertEqual(res['outputs'][text_filename], b'b') | ||
Jonathan Frederic
|
r12029 | |||
# Verify png output | ||||
MinRK
|
r18602 | self.assertIn(png_filename, res['outputs']) | ||
Jonathan Frederic
|
r12038 | self.assertEqual(res['outputs'][png_filename], b'g') | ||
MinRK
|
r15386 | |||
# Verify pdf output | ||||
MinRK
|
r18602 | self.assertIn(pdf_filename, res['outputs']) | ||
MinRK
|
r15386 | self.assertEqual(res['outputs'][pdf_filename], b'h') | ||