diff --git a/IPython/frontend/qt/console/tests/test_console_widget.py b/IPython/frontend/qt/console/tests/test_console_widget.py index 9568d58..ba2f75b 100644 --- a/IPython/frontend/qt/console/tests/test_console_widget.py +++ b/IPython/frontend/qt/console/tests/test_console_widget.py @@ -42,21 +42,32 @@ class TestConsoleWidget(unittest.TestCase): cursor.insertText('') def test_link_handling(self): - class event(object): - def __init__(self, pos): - self._pos = pos - def pos(self): - return self._pos - + noKeys = QtCore.Qt + noButton = QtCore.Qt.MouseButton(0) + noButtons = QtCore.Qt.MouseButtons(0) + noModifiers = QtCore.Qt.KeyboardModifiers(0) + MouseMove = QtCore.QEvent.MouseMove + QMouseEvent = QtGui.QMouseEvent + w = ConsoleWidget() cursor = w._get_prompt_cursor() w._insert_html(cursor, '<a href="http://python.org">written in</a>') + obj = w._control self.assertEqual(w._anchor, None) + # should be over text - w.mouseMoveEvent(event(QtCore.QPoint(1,5))) + overTextEvent = QMouseEvent(MouseMove, QtCore.QPoint(1,5), + noButton, noButtons, noModifiers) + w.eventFilter(obj, overTextEvent) self.assertEqual(w._anchor, "http://python.org") + # should still be over text - w.mouseMoveEvent(event(QtCore.QPoint(5,5))) + stillOverTextEvent = QMouseEvent(MouseMove, QtCore.QPoint(1,5), + noButton, noButtons, noModifiers) + w.eventFilter(obj, stillOverTextEvent) + # should be somewhere else - w.mouseMoveEvent(event(QtCore.QPoint(50,50))) + elsewhereEvent = QMouseEvent(MouseMove, QtCore.QPoint(50,50), + noButton, noButtons, noModifiers) + w.eventFilter(obj, elsewhereEvent) self.assertEqual(w._anchor, None)