##// END OF EJS Templates
Major restructuring of magics, breaking them up into separate classes....
Major restructuring of magics, breaking them up into separate classes. This is the first step to get the new magic architecture in place, with a new base class for magic functions. At this point IPython does *not* run, but the changes are extensive enough to warrant intermediate non-working commits.

File last commit:

r6574:e3e71346
r6917:6c6e057a
Show More
test_console_widget.py
42 lines | 1.3 KiB | text/x-python | PythonLexer
/ IPython / frontend / qt / console / tests / test_console_widget.py
Puneeth Chaganti
TST: Add tests to check the actual output on the console.
r6437 # Standard library imports
import unittest
# System library imports
from IPython.external.qt import QtGui
# Local imports
from IPython.frontend.qt.console.console_widget import ConsoleWidget
class TestConsoleWidget(unittest.TestCase):
@classmethod
def setUpClass(cls):
""" Create the application for the test case.
"""
Puneeth Chaganti
TST: QApplication doesn't quit early enough with PySide....
r6574 cls._app = QtGui.QApplication.instance()
if cls._app is None:
cls._app = QtGui.QApplication([])
Puneeth Chaganti
TST: Add tests to check the actual output on the console.
r6437 cls._app.setQuitOnLastWindowClosed(False)
@classmethod
def tearDownClass(cls):
""" Exit the application.
"""
QtGui.QApplication.quit()
def test_special_characters(self):
""" Are special characters displayed correctly?
"""
w = ConsoleWidget()
cursor = w._get_prompt_cursor()
test_inputs = ['xyz\b\b=\n', 'foo\b\nbar\n', 'foo\b\nbar\r\n', 'abc\rxyz\b\b=']
expected_outputs = [u'x=z\u2029', u'foo\u2029bar\u2029', u'foo\u2029bar\u2029', 'x=z']
for i, text in enumerate(test_inputs):
w._insert_plain_text(cursor, text)
cursor.select(cursor.Document)
selection = cursor.selectedText()
self.assertEquals(expected_outputs[i], selection)
# clear all the text
cursor.insertText('')