本文整理汇总了Python中qutepart.Qutepart.terminate方法的典型用法代码示例。如果您正苦于以下问题:Python Qutepart.terminate方法的具体用法?Python Qutepart.terminate怎么用?Python Qutepart.terminate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qutepart.Qutepart
的用法示例。
在下文中一共展示了Qutepart.terminate方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _Test
# 需要导入模块: from qutepart import Qutepart [as 别名]
# 或者: from qutepart.Qutepart import terminate [as 别名]
class _Test(unittest.TestCase):
"""Base class for tests
"""
app = base.papp # app crashes, if created more than once
def setUp(self):
self.qpart = Qutepart()
self.qpart.lines = ['The quick brown fox',
'jumps over the',
'lazy dog',
'back']
self.qpart.vimModeIndicationChanged.connect(self._onVimModeChanged)
self.qpart.vimModeEnabled = True
self.vimMode = 'normal'
def tearDown(self):
self.qpart.hide()
self.qpart.terminate()
def _onVimModeChanged(self, color, mode):
self.vimMode = mode
def click(self, keys):
if isinstance(keys, str):
for key in keys:
if key.isupper() or key in '$%^<>':
QTest.keyClick(self.qpart, key, Qt.ShiftModifier)
else:
QTest.keyClicks(self.qpart, key)
else:
QTest.keyClick(self.qpart, keys)
示例2: Test
# 需要导入模块: from qutepart import Qutepart [as 别名]
# 或者: from qutepart.Qutepart import terminate [as 别名]
class Test(unittest.TestCase):
"""Base class for tests
"""
app = base.papp # app crashes, if created more than once
def setUp(self):
self.qpart = Qutepart()
def tearDown(self):
self.qpart.terminate()
def _verify(self, actual, expected):
converted = []
for item in actual:
if item.format.background().color() == Qt.green:
matched = True
elif item.format.background().color() == Qt.red:
matched = False
else:
self.fail("Invalid color")
start = item.cursor.selectionStart()
end = item.cursor.selectionEnd()
converted.append((start, end, matched))
self.assertEqual(converted, expected)
def test_1(self):
self.qpart.lines = \
[ 'func(param,',
' "text ( param"))']
self.qpart.detectSyntax(language = 'Python')
while self.qpart.isHighlightingInProgress():
QApplication.instance().processEvents()
firstBlock = self.qpart.document().firstBlock()
secondBlock = firstBlock.next()
bh = BracketHighlighter()
self._verify(bh.extraSelections(self.qpart, firstBlock, 1),
[])
self._verify(bh.extraSelections(self.qpart, firstBlock, 4),
[(4, 5, True), (31, 32, True)])
self._verify(bh.extraSelections(self.qpart, firstBlock, 5),
[(4, 5, True), (31, 32, True)])
self._verify(bh.extraSelections(self.qpart, secondBlock, 11),
[])
self._verify(bh.extraSelections(self.qpart, secondBlock, 19),
[(31, 32, True), (4, 5, True)])
self._verify(bh.extraSelections(self.qpart, secondBlock, 20),
[(32, 33, False)])
self._verify(bh.extraSelections(self.qpart, secondBlock, 21),
[(32, 33, False)])
示例3: _BaseTest
# 需要导入模块: from qutepart import Qutepart [as 别名]
# 或者: from qutepart.Qutepart import terminate [as 别名]
class _BaseTest(unittest.TestCase):
"""Base class for tests
"""
app = base.papp # app crashes, if created more than once
def setUp(self):
self.qpart = Qutepart()
def tearDown(self):
self.qpart.terminate()
示例4: Test
# 需要导入模块: from qutepart import Qutepart [as 别名]
# 或者: from qutepart.Qutepart import terminate [as 别名]
class Test(unittest.TestCase):
"""Base class for tests
"""
app = base.papp # app crashes, if created more than once
def setUp(self):
self.qpart = Qutepart()
def tearDown(self):
self.qpart.terminate()
def test_1(self):
# Indent with Tab
self.qpart.indentUseTabs = True
self.qpart.text = 'ab\ncd'
QTest.keyClick(self.qpart, Qt.Key_Down)
QTest.keyClick(self.qpart, Qt.Key_Tab)
self.assertEqual(self.qpart.text, 'ab\n\tcd')
self.qpart.indentUseTabs = False
QTest.keyClick(self.qpart, Qt.Key_Backspace)
QTest.keyClick(self.qpart, Qt.Key_Tab)
self.assertEqual(self.qpart.text, 'ab\n cd')
def test_2(self):
# Unindent Tab
self.qpart.indentUseTabs = True
self.qpart.text = 'ab\n\t\tcd'
self.qpart.cursorPosition = (1, 2)
self.qpart.decreaseIndentAction.trigger()
self.assertEqual(self.qpart.text, 'ab\n\tcd')
self.qpart.decreaseIndentAction.trigger()
self.assertEqual(self.qpart.text, 'ab\ncd')
def test_3(self):
# Unindent Spaces
self.qpart.indentUseTabs = False
self.qpart.text = 'ab\n cd'
self.qpart.cursorPosition = (1, 6)
self.qpart.decreaseIndentAction.trigger()
self.assertEqual(self.qpart.text, 'ab\n cd')
self.qpart.decreaseIndentAction.trigger()
self.assertEqual(self.qpart.text, 'ab\ncd')
def test_4(self):
# (Un)indent multiline with Tab
self.qpart.indentUseTabs = False
self.qpart.text = ' ab\n cd'
self.qpart.selectedPosition = ((0, 2), (1, 3))
QTest.keyClick(self.qpart, Qt.Key_Tab)
self.assertEqual(self.qpart.text, ' ab\n cd')
self.qpart.decreaseIndentAction.trigger()
self.assertEqual(self.qpart.text, ' ab\n cd')
def test_4b(self):
# Indent multiline including line with zero selection
self.qpart.indentUseTabs = True
self.qpart.text = 'ab\ncd\nef'
self.qpart.position = (0, 0)
QTest.keyClick(self.qpart, Qt.Key_Down, Qt.ShiftModifier)
QTest.keyClick(self.qpart, Qt.Key_Tab)
self.assertEqual(self.qpart.text, '\tab\ncd\nef')
def test_5(self):
# (Un)indent multiline with Space
self.qpart.indentUseTabs = False
self.qpart.text = ' ab\n cd'
self.qpart.selectedPosition = ((0, 2), (1, 3))
QTest.keyClick(self.qpart, Qt.Key_Space, Qt.ShiftModifier)
self.assertEqual(self.qpart.text, ' ab\n cd')
QTest.keyClick(self.qpart, Qt.Key_Backspace, Qt.ShiftModifier)
self.assertEqual(self.qpart.text, ' ab\n cd')
def test_6(self):
# (Unindent Tab/Space mix
self.qpart.indentUseTabs = False
self.qpart.text = ' \t \tab'
self.qpart.cursorPosition = ((0, 8))
self.qpart.decreaseIndentAction.trigger()
self.assertEqual(self.qpart.text, ' \t ab')
self.qpart.decreaseIndentAction.trigger()
self.assertEqual(self.qpart.text, ' \tab')
self.qpart.decreaseIndentAction.trigger()
#.........这里部分代码省略.........
示例5: Document
# 需要导入模块: from qutepart import Qutepart [as 别名]
# 或者: from qutepart.Qutepart import terminate [as 别名]
class Document(QWidget):
"""
Document is a opened file representation.
It contains file management methods and uses `Qutepart <http://qutepart.rtfd.org/>`_ as an editor widget.
Qutepart is available as ``qutepart`` attribute.
"""
documentDataChanged = pyqtSignal()
"""
documentDataChanged()
**Signal** emitted, when document icon or toolTip has changed
(i.e. document has been modified externally)
"""
_EOL_CONVERTOR = {r'\r\n': '\r\n',
r'\n': '\n',
r'\r': '\r'}
def __init__(self, parentObject, filePath, createNew=False):
"""Create editor and open file.
If file is None or createNew is True, empty not saved file is created
IO Exceptions are not catched, therefore, must be catched on upper level
"""
QWidget.__init__(self, parentObject)
self._neverSaved = filePath is None or createNew
self._filePath = filePath
self._externallyRemoved = False
self._externallyModified = False
# File opening should be implemented in the document classes
self._fileWatcher = _FileWatcher(filePath)
self._fileWatcher.modified.connect(self._onWatcherFileModified)
self._fileWatcher.removed.connect(self._onWatcherFileRemoved)
self.qutepart = Qutepart(self)
self.qutepart.setStyleSheet('QPlainTextEdit {border: 0}')
self.qutepart.userWarning.connect(lambda text: core.mainWindow().statusBar().showMessage(text, 5000))
self._applyQpartSettings()
core.uiSettingsManager().dialogAccepted.connect(self._applyQpartSettings)
layout = QVBoxLayout(self)
layout.setContentsMargins(0, 0, 0, 0)
layout.addWidget(self.qutepart)
self.setFocusProxy(self.qutepart)
if not self._neverSaved:
originalText = self._readFile(filePath)
self.qutepart.text = originalText
else:
originalText = ''
# autodetect eol, if need
self._configureEolMode(originalText)
self._tryDetectSyntax()
def _tryDetectSyntax(self):
if len(self.qutepart.lines) > (100 * 1000) and \
self.qutepart.language() is None:
"""Qutepart uses too lot of memory when highlighting really big files
It may crash the editor, so, do not highlight really big files.
But, do not disable highlighting for files, which already was highlighted
"""
return
self.qutepart.detectSyntax(sourceFilePath=self.filePath(),
firstLine=self.qutepart.lines[0])
def terminate(self):
"""Explicytly called destructor
"""
self._fileWatcher.term()
# avoid emitting signals, document shall behave like it is already dead
self.qutepart.document().modificationChanged.disconnect()
self.qutepart.cursorPositionChanged.disconnect() #
self.qutepart.textChanged.disconnect()
self.qutepart.terminate() # stop background highlighting, free memory
@pyqtSlot(bool)
def _onWatcherFileModified(self, modified):
"""File has been modified
"""
self._externallyModified = modified
self.documentDataChanged.emit()
@pyqtSlot(bool)
def _onWatcherFileRemoved(self, isRemoved):
"""File has been removed
"""
self._externallyRemoved = isRemoved
self.documentDataChanged.emit()
def _readFile(self, filePath):
#.........这里部分代码省略.........
示例6: Test
# 需要导入模块: from qutepart import Qutepart [as 别名]
# 或者: from qutepart.Qutepart import terminate [as 别名]
class Test(unittest.TestCase):
"""Base class for tests
"""
app = base.papp # app crashes, if created more than once
def setUp(self):
self._window = QMainWindow()
self.qpart = Qutepart()
self._window.setCentralWidget(self.qpart)
self._window.menuBar().addAction(self.qpart.invokeCompletionAction)
def tearDown(self):
self.qpart.terminate()
def test_down_selects_first(self):
self.qpart.text = 'aaaa\nbbbb\ncccX\ndddd\ncccY'
while self.app.hasPendingEvents():
self.app.processEvents()
QTest.keyClicks(self.qpart, "ccc")
QTest.keyClick(self.qpart, Qt.Key_Down)
QTest.keyClick(self.qpart, Qt.Key_Enter)
QTest.keyClick(self.qpart, Qt.Key_Enter)
self.assertEqual(self.qpart.text, 'cccX\naaaa\nbbbb\ncccX\ndddd\ncccY')
def test_down_selects_second(self):
self.qpart.text = 'aaaa\nbbbb\ncccX\ndddd\ncccY'
base._processPendingEvents(self.app)
QTest.keyClicks(self.qpart, "ccc")
QTest.keyClick(self.qpart, Qt.Key_Down)
QTest.keyClick(self.qpart, Qt.Key_Down)
QTest.keyClick(self.qpart, Qt.Key_Enter)
QTest.keyClick(self.qpart, Qt.Key_Enter)
self.assertEqual(self.qpart.text, 'cccY\naaaa\nbbbb\ncccX\ndddd\ncccY')
@unittest.skip("Crashes Qt 4.8.3")
def test_click_selects_first(self):
self.qpart.text = 'aaaa\nbbbb\ncccX\ndddd\ncccY'
QTest.keyClicks(self.qpart, "ccc")
QTest.mouseClick(self.qpart, Qt.LeftButton)
QTest.keyClick(self.qpart, Qt.Key_Enter)
self.assertEqual(self.qpart.text, 'cccY\naaaa\nbbbb\ncccX\ndddd\ncccY')
def test_tab_completes(self):
self.qpart.text = 'aaaaa\naaaaaXXXXX\n'
base._processPendingEvents(self.app)
self.qpart.cursorPosition = (2, 0)
QTest.keyClicks(self.qpart, "aaa")
QTest.keyClick(self.qpart, Qt.Key_Tab)
self.assertEqual(self.qpart.text, 'aaaaa\naaaaaXXXXX\naaaaa')
QTest.keyClick(self.qpart, Qt.Key_Tab)
self.assertEqual(self.qpart.text, 'aaaaa\naaaaaXXXXX\naaaaaXXXXX')
def test_manual(self):
self._window.show()
self.qpart.text = 'aaaaa\naaaaaXXXXX\n'
base._processPendingEvents(self.app)
self.qpart.cursorPosition = (2, 0)
QTest.keyClicks(self.qpart, "a")
QTest.keyPress(self.qpart, Qt.Key_Space, Qt.ControlModifier, 100)
QTest.keyClicks(self.qpart, "a")
QTest.keyClick(self.qpart, Qt.Key_Tab)
self.assertEqual(self.qpart.text, 'aaaaa\naaaaaXXXXX\naaaaa')
@base.in_main_loop
def test_too_long_list(self):
self._window.show()
self.qpart.text = '\n'.join(['asdf' + str(i) \
for i in range(100)]) + '\n'
base._processPendingEvents(self.app)
self.qpart.cursorPosition = (100, 0)
QTest.keyClicks(self.qpart, "asdf")
self.assertIsNotNone(self.qpart._completer._widget)
self.qpart.text = '\n'.join(['asdf' + str(i) \
for i in range(1000)]) + '\n'
base._processPendingEvents(self.app)
self.qpart.cursorPosition = (1000, 0)
QTest.keyClicks(self.qpart, "asdf")
self.assertIsNone(self.qpart._completer._widget)
QTest.keyPress(self.qpart, Qt.Key_Space, Qt.ControlModifier, 100)
self.assertIsNotNone(self.qpart._completer._widget)
示例7: Test
# 需要导入模块: from qutepart import Qutepart [as 别名]
# 或者: from qutepart.Qutepart import terminate [as 别名]
class Test(unittest.TestCase):
"""Base class for tests
"""
app = base.papp # app crashes, if created more than once
def setUp(self):
self.qpart = Qutepart()
def tearDown(self):
self.qpart.terminate()
def _ws_test(
self,
text,
expectedResult,
drawAny=[True, False],
drawIncorrect=[True, False],
useTab=[True, False],
indentWidth=[1, 2, 3, 4, 8],
):
for drawAnyVal in drawAny:
self.qpart.drawAnyWhitespace = drawAnyVal
for drawIncorrectVal in drawIncorrect:
self.qpart.drawIncorrectIndentation = drawIncorrectVal
for useTabVal in useTab:
self.qpart.indentUseTabs = useTabVal
for indentWidthVal in indentWidth:
self.qpart.indentWidth = indentWidthVal
try:
self._verify(text, expectedResult)
except:
print(
"Failed params:\n\tany {}\n\tincorrect {}\n\ttabs {}\n\twidth {}".format(
self.qpart.drawAnyWhitespace,
self.qpart.drawIncorrectIndentation,
self.qpart.indentUseTabs,
self.qpart.indentWidth,
)
)
raise
def _verify(self, text, expectedResult):
res = self.qpart._chooseVisibleWhitespace(text)
for index, value in enumerate(expectedResult):
if value == "1":
if not res[index]:
self.fail("Item {} is not True:\n\t{}".format(index, res))
elif value == "0":
if res[index]:
self.fail("Item {} is not False:\n\t{}".format(index, res))
else:
assert value == " "
def test_1(self):
# Trailing
self._ws_test(" m xyz\t ", " 0 00011", drawIncorrect=[True])
def test_2(self):
# Tabs in space mode
self._ws_test("\txyz\t", "10001", drawIncorrect=[True], useTab=[False])
def test_3(self):
# Spaces in tab mode
self._ws_test(
" 2 3 5", "111100000000000", drawIncorrect=[True], drawAny=[False], indentWidth=[3], useTab=[True]
)
def test_4(self):
# Draw any
self._ws_test(" 1 1 2 3 5\t", "100011011101111101", drawAny=[True], indentWidth=[2, 3, 4, 8])
示例8: Test
# 需要导入模块: from qutepart import Qutepart [as 别名]
# 或者: from qutepart.Qutepart import terminate [as 别名]
class Test(unittest.TestCase):
"""Base class for tests
"""
app = base.papp # app crashes, if created more than once
def setUp(self):
self.qpart = Qutepart()
def tearDown(self):
self.qpart.hide()
self.qpart.terminate()
def test_real_to_visible(self):
self.qpart.text = 'abcdfg'
self.assertEqual(0, self.qpart._rectangularSelection._realToVisibleColumn(self.qpart.text, 0))
self.assertEqual(2, self.qpart._rectangularSelection._realToVisibleColumn(self.qpart.text, 2))
self.assertEqual(6, self.qpart._rectangularSelection._realToVisibleColumn(self.qpart.text, 6))
self.qpart.text = '\tab\tcde\t'
self.assertEqual(0, self.qpart._rectangularSelection._realToVisibleColumn(self.qpart.text, 0))
self.assertEqual(4, self.qpart._rectangularSelection._realToVisibleColumn(self.qpart.text, 1))
self.assertEqual(5, self.qpart._rectangularSelection._realToVisibleColumn(self.qpart.text, 2))
self.assertEqual(8, self.qpart._rectangularSelection._realToVisibleColumn(self.qpart.text, 4))
self.assertEqual(12, self.qpart._rectangularSelection._realToVisibleColumn(self.qpart.text, 8))
def test_visible_to_real(self):
self.qpart.text = 'abcdfg'
self.assertEqual(0, self.qpart._rectangularSelection._visibleToRealColumn(self.qpart.text, 0))
self.assertEqual(2, self.qpart._rectangularSelection._visibleToRealColumn(self.qpart.text, 2))
self.assertEqual(6, self.qpart._rectangularSelection._visibleToRealColumn(self.qpart.text, 6))
self.qpart.text = '\tab\tcde\t'
self.assertEqual(0, self.qpart._rectangularSelection._visibleToRealColumn(self.qpart.text, 0))
self.assertEqual(1, self.qpart._rectangularSelection._visibleToRealColumn(self.qpart.text, 4))
self.assertEqual(2, self.qpart._rectangularSelection._visibleToRealColumn(self.qpart.text, 5))
self.assertEqual(4, self.qpart._rectangularSelection._visibleToRealColumn(self.qpart.text, 8))
self.assertEqual(8, self.qpart._rectangularSelection._visibleToRealColumn(self.qpart.text, 12))
self.assertEqual(None, self.qpart._rectangularSelection._visibleToRealColumn(self.qpart.text, 13))
def test_basic(self):
self.qpart.show()
for key in [Qt.Key_Delete, Qt.Key_Backspace]:
self.qpart.text = 'abcd\nef\nghkl\nmnop'
QTest.keyClick(self.qpart, Qt.Key_Right)
QTest.keyClick(self.qpart, Qt.Key_Right, Qt.AltModifier | Qt.ShiftModifier)
QTest.keyClick(self.qpart, Qt.Key_Right, Qt.AltModifier | Qt.ShiftModifier)
QTest.keyClick(self.qpart, Qt.Key_Down, Qt.AltModifier | Qt.ShiftModifier)
QTest.keyClick(self.qpart, Qt.Key_Down, Qt.AltModifier | Qt.ShiftModifier)
QTest.keyClick(self.qpart, key)
self.assertEqual(self.qpart.text, 'ad\ne\ngl\nmnop')
def test_reset_by_move(self):
self.qpart.show()
self.qpart.text = 'abcd\nef\nghkl\nmnop'
QTest.keyClick(self.qpart, Qt.Key_Right)
QTest.keyClick(self.qpart, Qt.Key_Right, Qt.AltModifier | Qt.ShiftModifier)
QTest.keyClick(self.qpart, Qt.Key_Right, Qt.AltModifier | Qt.ShiftModifier)
QTest.keyClick(self.qpart, Qt.Key_Down, Qt.AltModifier | Qt.ShiftModifier)
QTest.keyClick(self.qpart, Qt.Key_Down, Qt.AltModifier | Qt.ShiftModifier)
QTest.keyClick(self.qpart, Qt.Key_Left)
QTest.keyClick(self.qpart, Qt.Key_Backspace)
self.assertEqual(self.qpart.text, 'abcd\nef\ngkl\nmnop')
def test_reset_by_edit(self):
self.qpart.show()
self.qpart.text = 'abcd\nef\nghkl\nmnop'
QTest.keyClick(self.qpart, Qt.Key_Right)
QTest.keyClick(self.qpart, Qt.Key_Right, Qt.AltModifier | Qt.ShiftModifier)
QTest.keyClick(self.qpart, Qt.Key_Right, Qt.AltModifier | Qt.ShiftModifier)
QTest.keyClick(self.qpart, Qt.Key_Down, Qt.AltModifier | Qt.ShiftModifier)
QTest.keyClick(self.qpart, Qt.Key_Down, Qt.AltModifier | Qt.ShiftModifier)
QTest.keyClicks(self.qpart, 'x')
QTest.keyClick(self.qpart, Qt.Key_Backspace)
self.assertEqual(self.qpart.text, 'abcd\nef\nghkl\nmnop')
def test_with_tabs(self):
self.qpart.show()
self.qpart.text = 'abcdefghhhhh\n\tklm\n\t\txyz'
self.qpart.cursorPosition = (0, 6)
QTest.keyClick(self.qpart, Qt.Key_Down, Qt.AltModifier | Qt.ShiftModifier)
QTest.keyClick(self.qpart, Qt.Key_Down, Qt.AltModifier | Qt.ShiftModifier)
QTest.keyClick(self.qpart, Qt.Key_Right, Qt.AltModifier | Qt.ShiftModifier)
QTest.keyClick(self.qpart, Qt.Key_Right, Qt.AltModifier | Qt.ShiftModifier)
QTest.keyClick(self.qpart, Qt.Key_Right, Qt.AltModifier | Qt.ShiftModifier)
QTest.keyClick(self.qpart, Qt.Key_Delete)
# 2 variants, Qt bahavior differs on different systems
self.assertTrue(self.qpart.text in ('abcdefhh\n\tkl\n\t\tz',
'abcdefh\n\tkl\n\t\t'))
def test_delete(self):
self.qpart.show()
self.qpart.text = 'this is long\nshort\nthis is long'
self.qpart.cursorPosition = (0, 8)
for i in range(2):
QTest.keyClick(self.qpart, Qt.Key_Down, Qt.AltModifier | Qt.ShiftModifier)
for i in range(4):
QTest.keyClick(self.qpart, Qt.Key_Right, Qt.AltModifier | Qt.ShiftModifier)
#.........这里部分代码省略.........
示例9: Test
# 需要导入模块: from qutepart import Qutepart [as 别名]
# 或者: from qutepart.Qutepart import terminate [as 别名]
class Test(unittest.TestCase):
"""Base class for tests
"""
app = base.papp # app crashes, if created more than once
def setUp(self):
self.qpart = Qutepart()
def tearDown(self):
self.qpart.terminate()
def _markedBlocks(self):
bookMarksObject = self.qpart._bookmarks
return [block.blockNumber() \
for block in iterateBlocksFrom(self.qpart.document().firstBlock()) \
if bookMarksObject.isBlockMarked(block)]
@base.in_main_loop
def test_set_with_keyboard(self):
self.qpart.text = '\n' * 5
QTest.keyClick(self.qpart, Qt.Key_B, Qt.ControlModifier)
QTest.keyClick(self.qpart, Qt.Key_Down)
QTest.keyClick(self.qpart, Qt.Key_Down)
QTest.keyClick(self.qpart, Qt.Key_B, Qt.ControlModifier)
self.assertEqual(self._markedBlocks(), [0, 2])
QTest.keyClick(self.qpart, Qt.Key_B, Qt.ControlModifier)
self.assertEqual(self._markedBlocks(), [0])
@unittest.skip('Crashes Qt')
@base.in_main_loop
def test_set_with_mouse(self):
self.qpart.text = '\n' * 5
secondBlock = self.qpart.document().findBlockByNumber(2)
geometry = self.qpart.blockBoundingGeometry(secondBlock).translated(self.qpart.contentOffset())
QTest.mouseClick(self.qpart._markArea, Qt.LeftButton, Qt.NoModifier, QPoint(0, geometry.bottom() - 1))
self.assertEqual(self._markedBlocks(), [1])
@base.in_main_loop
def test_jump(self):
self.qpart.text = '\n' * 5
QTest.keyClick(self.qpart, Qt.Key_B, Qt.ControlModifier)
for i in range(2):
QTest.keyClick(self.qpart, Qt.Key_Down)
QTest.keyClick(self.qpart, Qt.Key_B, Qt.ControlModifier)
for i in range(2):
QTest.keyClick(self.qpart, Qt.Key_Down)
QTest.keyClick(self.qpart, Qt.Key_B, Qt.ControlModifier)
self.assertEqual(self._markedBlocks(), [0, 2, 4])
self.qpart.cursorPosition = (0, 0)
QTest.keyClick(self.qpart, Qt.Key_PageDown, Qt.AltModifier)
self.assertEqual(self.qpart.cursorPosition[0], 2)
QTest.keyClick(self.qpart, Qt.Key_PageDown, Qt.AltModifier)
self.assertEqual(self.qpart.cursorPosition[0], 4)
QTest.keyClick(self.qpart, Qt.Key_PageDown, Qt.AltModifier)
self.assertEqual(self.qpart.cursorPosition[0], 4)
QTest.keyClick(self.qpart, Qt.Key_PageUp, Qt.AltModifier)
self.assertEqual(self.qpart.cursorPosition[0], 2)
QTest.keyClick(self.qpart, Qt.Key_PageUp, Qt.AltModifier)
self.assertEqual(self.qpart.cursorPosition[0], 0)
QTest.keyClick(self.qpart, Qt.Key_PageUp, Qt.AltModifier)
self.assertEqual(self.qpart.cursorPosition[0], 0)
示例10: Test
# 需要导入模块: from qutepart import Qutepart [as 别名]
# 或者: from qutepart.Qutepart import terminate [as 别名]
class Test(unittest.TestCase):
"""Base class for tests
"""
app = base.papp # app crashes, if created more than once
def setUp(self):
self.qpart = Qutepart()
def tearDown(self):
self.qpart.terminate()
def test_overwrite_edit(self):
self.qpart.show()
self.qpart.text = 'abcd'
QTest.keyClicks(self.qpart, "stu")
self.assertEqual(self.qpart.text, 'stuabcd')
QTest.keyClick(self.qpart, Qt.Key_Insert)
QTest.keyClicks(self.qpart, "xy")
self.assertEqual(self.qpart.text, 'stuxycd')
QTest.keyClick(self.qpart, Qt.Key_Insert)
QTest.keyClicks(self.qpart, "z")
self.assertEqual(self.qpart.text, 'stuxyzcd')
def test_overwrite_backspace(self):
self.qpart.show()
self.qpart.text = 'abcd'
QTest.keyClick(self.qpart, Qt.Key_Insert)
for i in range(3):
QTest.keyClick(self.qpart, Qt.Key_Right)
for i in range(2):
QTest.keyClick(self.qpart, Qt.Key_Backspace)
self.assertEqual(self.qpart.text, 'a d')
@base.in_main_loop
def test_overwrite_undo(self):
self.qpart.show()
self.qpart.text = 'abcd'
QTest.keyClick(self.qpart, Qt.Key_Insert)
QTest.keyClick(self.qpart, Qt.Key_Right)
QTest.keyClick(self.qpart, Qt.Key_X)
QTest.keyClick(self.qpart, Qt.Key_X)
self.assertEqual(self.qpart.text, 'axxd')
# Ctrl+Z doesn't work. Wtf???
self.qpart.document().undo()
self.qpart.document().undo()
self.assertEqual(self.qpart.text, 'abcd')
def test_alt_does_not_type(self):
""" By default when Alt+Key is pressed - text is inserted.
Qutepart ignores this key pressings
"""
QTest.keyClick(self.qpart, Qt.Key_A, Qt.AltModifier)
self.assertEqual(self.qpart.text, '')
QTest.keyClick(self.qpart, Qt.Key_A)
self.assertEqual(self.qpart.text, 'a')
def test_home1(self):
""" Test the operation of the home key. """
self.qpart.show()
self.qpart.text = ' xx'
# Move to the end of this string.
self.qpart.cursorPosition = (100, 100)
# Press home the first time. This should move to the beginning of the
# indent: line 0, column 4.
self.assertEqual(self.qpart.cursorPosition, (0, 4))
def column(self):
""" Return the column at which the cursor is located."""
return self.qpart.cursorPosition[1]
def test_home2(self):
""" Test the operation of the home key. """
self.qpart.show()
self.qpart.text = '\n\n ' + 'x'*10000
# Move to the end of this string.
self.qpart.cursorPosition = (100, 100)
# Press home. We should either move to the line beginning or indent.
QTest.keyClick(self.qpart, Qt.Key_Home)
# There's no way I can find of determine what the line beginning should
# be. So, just press home again if we're not at the indent.
if self.column() != 4:
# Press home again to move to the beginning of the indent.
QTest.keyClick(self.qpart, Qt.Key_Home)
# We're at the indent.
self.assertEqual(self.column(), 4)
# Move to the beginning of the line.
QTest.keyClick(self.qpart, Qt.Key_Home)
self.assertEqual(self.column(), 0)
# Move back to the beginning of the indent.
QTest.keyClick(self.qpart, Qt.Key_Home)
self.assertEqual(self.column(), 4)