##// END OF EJS Templates
Make 'Paste Above' the default paste behavior....
Make 'Paste Above' the default paste behavior. Destructive paste mapped to Ctrl-M V is a surprising choice given that there was no drag-to-select on the area being replaced (there is a weaker notion of "selected cell" but this does not map to will-be-replaced- by-paste in the minds of participants in an unscientific poll at PyConCA). Destructive paste is still available as the last paste option in the Edit menu, qualified as "Paste Cell Replace".

File last commit:

r7876:ae3a5bcc
r8715:2a45e0e8
Show More
test_kill_ring.py
85 lines | 2.2 KiB | text/x-python | PythonLexer
epatters
Add Emacs-style kill ring to Qt console....
r3767 # Standard library imports
import unittest
# System library imports
from IPython.external.qt import QtCore, QtGui
# Local imports
from IPython.frontend.qt.console.kill_ring import KillRing, QtKillRing
class TestKillRing(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([])
epatters
Add Emacs-style kill ring to Qt console....
r3767 cls._app.setQuitOnLastWindowClosed(False)
@classmethod
def tearDownClass(cls):
""" Exit the application.
"""
QtGui.QApplication.quit()
def test_generic(self):
""" Does the generic kill ring work?
"""
ring = KillRing()
Bradley M. Froehle
s/assert_/assertTrue/
r7876 self.assertTrue(ring.yank() is None)
self.assertTrue(ring.rotate() is None)
epatters
Add Emacs-style kill ring to Qt console....
r3767
ring.kill('foo')
self.assertEqual(ring.yank(), 'foo')
Bradley M. Froehle
s/assert_/assertTrue/
r7876 self.assertTrue(ring.rotate() is None)
epatters
Add Emacs-style kill ring to Qt console....
r3767 self.assertEqual(ring.yank(), 'foo')
ring.kill('bar')
self.assertEqual(ring.yank(), 'bar')
self.assertEqual(ring.rotate(), 'foo')
ring.clear()
Bradley M. Froehle
s/assert_/assertTrue/
r7876 self.assertTrue(ring.yank() is None)
self.assertTrue(ring.rotate() is None)
epatters
Add Emacs-style kill ring to Qt console....
r3767
def test_qt_basic(self):
""" Does the Qt kill ring work?
"""
text_edit = QtGui.QPlainTextEdit()
ring = QtKillRing(text_edit)
ring.kill('foo')
ring.kill('bar')
ring.yank()
ring.rotate()
ring.yank()
self.assertEqual(text_edit.toPlainText(), 'foobar')
text_edit.clear()
ring.kill('baz')
ring.yank()
ring.rotate()
ring.rotate()
ring.rotate()
self.assertEqual(text_edit.toPlainText(), 'foo')
def test_qt_cursor(self):
""" Does the Qt kill ring maintain state with cursor movement?
"""
text_edit = QtGui.QPlainTextEdit()
ring = QtKillRing(text_edit)
ring.kill('foo')
ring.kill('bar')
ring.yank()
text_edit.moveCursor(QtGui.QTextCursor.Left)
ring.rotate()
self.assertEqual(text_edit.toPlainText(), 'bar')
if __name__ == '__main__':
import nose
nose.main()