##// END OF EJS Templates
Also catch SyntaxErrors from InputTransformers in run_cell()...
Also catch SyntaxErrors from InputTransformers in run_cell() The run_cell() method is not used in the IPython terminal, so there are two code paths where the SyntaxError needs to be caught. Also, this commit moves the terminal test to IPython/terminal/test/ instead of IPython/app/test. I've checked that this works in the terminal, the Qt console, and the html notebook.

File last commit:

r12388:2805f511
r13525:b06d9d6e
Show More
test_extractoutput.py
64 lines | 2.1 KiB | text/x-python | PythonLexer
Jonathan Frederic
Added extract output test
r12029 """
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 Module with tests for the extractoutput preprocessor
Jonathan Frederic
Added extract output test
r12029 """
#-----------------------------------------------------------------------------
# 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
#-----------------------------------------------------------------------------
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 from .base import PreprocessorTestsBase
from ..extractoutput import ExtractOutputPreprocessor
Jonathan Frederic
Added extract output test
r12029
#-----------------------------------------------------------------------------
# Class
#-----------------------------------------------------------------------------
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 class TestExtractOutput(PreprocessorTestsBase):
Jonathan Frederic
Added extract output test
r12029 """Contains test functions for extractoutput.py"""
Jonathan Frederic
Fixes small things pointed out by @minrk
r12035
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 def build_preprocessor(self):
"""Make an instance of a preprocessor"""
preprocessor = ExtractOutputPreprocessor()
preprocessor.enabled = True
return preprocessor
Jonathan Frederic
Fixes small things pointed out by @minrk
r12035
def test_constructor(self):
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 """Can a ExtractOutputPreprocessor be constructed?"""
self.build_preprocessor()
Jonathan Frederic
Added extract output test
r12029
def test_output(self):
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 """Test the output of the ExtractOutputPreprocessor"""
Jonathan Frederic
Expanded transformer pass line, for easier debugging
r12039 nb = self.build_notebook()
res = self.build_resources()
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 preprocessor = self.build_preprocessor()
nb, res = preprocessor(nb, res)
Jonathan Frederic
Added extract output test
r12029
# Check if text was extracted.
MinRK
update test_extract_output
r12388 output = nb.worksheets[0].cells[0].outputs[1]
assert 'text_filename' in output
text_filename = output['text_filename']
Jonathan Frederic
Added extract output test
r12029
# Check if png was extracted.
MinRK
update test_extract_output
r12388 output = nb.worksheets[0].cells[0].outputs[6]
assert 'png_filename' in output
png_filename = output['png_filename']
Jonathan Frederic
Added extract output test
r12029
# Verify text output
assert text_filename in res['outputs']
Jonathan Frederic
Extracted output are now test against byte arrays instead of strings
r12038 self.assertEqual(res['outputs'][text_filename], b'b')
Jonathan Frederic
Added extract output test
r12029
# Verify png output
assert png_filename in res['outputs']
Jonathan Frederic
Extracted output are now test against byte arrays instead of strings
r12038 self.assertEqual(res['outputs'][png_filename], b'g')