Пример #1
0
def test_line_nbr_from_position(editor):
    editor.repaint()
    sys.stderr.write(str(editor.visible_blocks))
    assert TextHelper(editor).line_nbr_from_position(
        TextHelper(editor).line_pos_from_number(0)) is not None
    assert TextHelper(editor).line_nbr_from_position(-1) == 0
    QTest.qWait(100)
Пример #2
0
def test_json_code_edit():
    editor = JSONCodeEdit()
    editor.file.open('test/files/example.json')
    QTest.qWait(1000)
    assert editor.backend.running
    editor.close()
    assert not editor.backend.running
Пример #3
0
def test_json_code_edit():
    editor = RstCodeEdit()
    editor.file.open('test/files/demo_ko.rst')
    QTest.qWait(1000)
    assert editor.backend.running
    editor.close()
    assert not editor.backend.running
Пример #4
0
def editor(request):
    global _app, _widget
    from pyqode.core import modes, cache
    from pyqode.python.widgets.code_edit import PyCodeEdit
    from pyqode.python.panels import SymbolBrowserPanel
    from pyqode.qt.QtTest import QTest

    cache.Cache().clear()

    _widget = PyCodeEdit()
    _widget.panels.append(SymbolBrowserPanel(),
                          SymbolBrowserPanel.Position.TOP)
    _widget.resize(800, 600)

    while not _widget.backend.connected:
        QTest.qWait(100)

    _widget.modes.get(modes.FileWatcherMode).file_watcher_auto_reload = True
    _widget.save_on_focus_out = False

    def fin():
        global _widget
        _widget.close()
        del _widget

    request.addfinalizer(fin)
    return _widget
Пример #5
0
def test_selected_text(editor):
    helper = TextHelper(editor)
    helper.goto_line(2, 1, move=True)
    QTest.qWait(100)
    assert helper.word_under_cursor().selectedText() == 'T'
    assert helper.word_under_cursor(
        select_whole_word=True).selectedText() == 'This'
Пример #6
0
def test_selected_text(editor):
    helper = TextHelper(editor)
    helper.goto_line(2, 1, move=True)
    QTest.qWait(100)
    assert helper.word_under_cursor().selectedText() == 'T'
    assert helper.word_under_cursor(
        select_whole_word=True).selectedText() == 'This'
Пример #7
0
def toggle_fold_trigger(editor, line, panel):
    y_pos = TextHelper(editor).line_pos_from_number(line) + 5
    QTest.mouseMove(panel, QtCore.QPoint(3, y_pos))
    QTest.qWait(1000)
    QTest.mousePress(panel, QtCore.Qt.RightButton, QtCore.Qt.NoModifier,
                     QtCore.QPoint(3, y_pos))
    QTest.qWait(1000)
Пример #8
0
def editor(request):
    import gettext
    gettext.NullTranslations().install()
    global _app, _widget
    from pyqode.core import modes
    from pyqode.cobol.widgets import CobolCodeEdit
    from pyqode.qt.QtTest import QTest

    logging.info('################ setup session editor ################')

    _widget = CobolCodeEdit()
    _widget.resize(800, 600)
    _widget.show()
    _app.setActiveWindow(_widget)
    while not _widget.backend.connected:
        QTest.qWait(100)

    _widget.modes.get(modes.FileWatcherMode).file_watcher_auto_reload = True
    _widget.save_on_focus_out = False

    def fin():
        global _widget
        logging.info('################ teardown session editor ###############'
                     '#')
        _widget.backend.stop()
        while _widget.backend.connected:
            QTest.qWait(100)
        del _widget

    request.addfinalizer(fin)

    return _widget
Пример #9
0
def test_style(editor):
    panel = get_panel(editor)
    panel.request_search('import')
    QTest.qWait(1000)
    panel.background = QtGui.QColor('green')
    panel.foreground = QtGui.QColor('red')
    QTest.qWait(1000)
Пример #10
0
def editor(request):
    global _app, _widget
    from pyqode.core import modes
    from pyqode.rst.widgets import RstCodeEdit
    from pyqode.qt.QtTest import QTest

    logging.info('################ setup session editor ################')

    _widget = RstCodeEdit()
    _widget.resize(800, 600)
    _app.setActiveWindow(_widget)
    while not _widget.backend.connected:
        QTest.qWait(100)

    _widget.modes.get(modes.FileWatcherMode).file_watcher_auto_reload = True
    _widget.save_on_focus_out = False

    def fin():
        global _widget
        _widget.close()
        while _widget.backend.connected:
            QTest.qWait(100)
        del _widget

    request.addfinalizer(fin)

    return _widget
Пример #11
0
def test_request_search(editor):
    QTest.qWait(1000)
    assert editor.backend.running
    panel = get_panel(editor)
    panel.request_search('import')
    QTest.qWait(2000)
    assert panel.cpt_occurences > 1
Пример #12
0
def test_line_nbr_from_position(editor):
    editor.repaint()
    sys.stderr.write(str(editor.visible_blocks))
    assert TextHelper(editor).line_nbr_from_position(
        TextHelper(editor).line_pos_from_number(0)) is not None
    assert TextHelper(editor).line_nbr_from_position(-1) == -1
    QTest.qWait(100)
Пример #13
0
def editor(request):
    import gettext
    gettext.NullTranslations().install()
    global _app, _widget
    from pyqode.core import modes
    from pyqode.cobol.widgets import CobolCodeEdit
    from pyqode.qt.QtTest import QTest

    logging.info('################ setup session editor ################')

    _widget = CobolCodeEdit()
    _widget.resize(800, 600)
    _widget.show()
    _app.setActiveWindow(_widget)
    while not _widget.backend.connected:
        QTest.qWait(100)

    _widget.modes.get(modes.FileWatcherMode).file_watcher_auto_reload = True
    _widget.save_on_focus_out = False

    def fin():
        global _widget
        logging.info('################ teardown session editor ###############'
                     '#')
        _widget.backend.stop()
        while _widget.backend.connected:
            QTest.qWait(100)
        del _widget

    request.addfinalizer(fin)

    return _widget
Пример #14
0
def editor(request):
    global _app, _widget
    from pyqode.core import modes
    from pyqode.json.widgets import JSONCodeEdit
    from pyqode.qt.QtTest import QTest

    logging.info('################ setup session editor ################')

    _widget = JSONCodeEdit()
    _widget.resize(800, 600)
    _app.setActiveWindow(_widget)
    while not _widget.backend.connected:
        QTest.qWait(100)

    _widget.modes.get(modes.FileWatcherMode).file_watcher_auto_reload = True
    _widget.save_on_focus_out = False

    def fin():
        global _widget
        _widget.close()
        while _widget.backend.connected:
            QTest.qWait(100)
        del _widget

    request.addfinalizer(fin)

    return _widget
Пример #15
0
def test_goto_definition(editor):
    editor.show()
    QTest.qWait(1000)
    panel = get_panel(editor)
    line = TextHelper(editor).current_line_nbr()
    panel._on_definition_activated(len(panel._definitions) - 2)
    assert TextHelper(editor).current_line_nbr() != line
Пример #16
0
def test_key_pressed():
    # " -> ""
    editor = CodeEdit()
    editor.modes.append(modes.AutoCompleteMode())
    editor.setPlainText('', '', 'utf-8')
    QTest.keyPress(editor, '"')
    assert editor.toPlainText() == '""'
    editor.clear()

    # if a " already exists, cursor should just move after " and a new " should
    # not be inserted
    editor.setPlainText('"', 'text/x-python', 'utf-8')
    TextHelper(editor).goto_line(0, 0)
    QTest.keyPress(editor, '"')
    assert editor.toPlainText() == '"'
    editor.clear()

    # if a ) already exists, cursor should just move after ) and a new ) should
    # not be inserted
    editor.setPlainText(')', 'text/x-python', 'utf-8')
    TextHelper(editor).goto_line(0, 0)
    QTest.keyPress(editor, ')')
    QTest.qWait(1000)
    assert editor.toPlainText() == ')'

    # ] should be inserted ")" -> "])"
    TextHelper(editor).goto_line(0, 0)
    QTest.keyPress(editor, ']')
    QTest.qWait(1000)
    assert editor.toPlainText() == '])'
Пример #17
0
def test_add_marker(editor):
    panel = get_panel(editor)
    marker = panels.Marker(1, icon=':/pyqode-icons/rc/edit-undo.png',
                           description='Marker description')
    panel.add_marker(marker)
    QTest.qWait(500)
    assert panel.marker_for_line(1)[0] is not None
Пример #18
0
def test_cancel_operations(app):
    app.file.open_file(path_interactive)
    QTest.qWait(500)
    app.cobol.run()
    QTest.qWait(500)
    assert not app.win.ui.actionCompile.isEnabled()
    app.cobol.cancel()
    assert app.win.ui.actionCompile.isEnabled()
Пример #19
0
def test_close(editor):
    panel = get_panel(editor)
    panel.on_actionSearch_triggered()
    assert panel.isVisible()
    panel.on_toolButtonClose_clicked()
    assert not panel.isVisible()
    QTest.qWait(100)
    panel.on_actionSearch_triggered()
Пример #20
0
def test_action_search_triggered2(editor):
    panel = get_panel(editor)
    # second search with the same text
    tc = TextHelper(editor).word_under_mouse_cursor()
    editor.setTextCursor(tc)
    panel.on_actionSearch_triggered()
    assert panel.isVisible()
    QTest.qWait(1000)
Пример #21
0
def test_delete(editor):
    mode = get_mode(editor)
    mode.auto_reload = False
    os.remove(file_path)
    QTest.qWait(1000)
    with open(file_path, 'w') as f:
        f.write("test file initial")
    editor.file.open(file_path)
Пример #22
0
def test_select_lines(editor):
    TextHelper(editor).select_lines(0, 4)
    QTest.qWait(100)
    QTest.qWait(1000)
    assert TextHelper(editor).selection_range() == (0, 4)
    TextHelper(editor).select_lines(-1, 10)
    assert TextHelper(editor).selection_range() == (0, 10)
    editor.decorations.clear()
Пример #23
0
def test_select_lines(editor):
    TextHelper(editor).select_lines(0, 4)
    QTest.qWait(100)
    QTest.qWait(1000)
    assert TextHelper(editor).selection_range() == (0, 4)
    TextHelper(editor).select_lines(-1, 10)
    assert TextHelper(editor).selection_range() == (0, 10)
    editor.decorations.clear()
Пример #24
0
 def fin():
     global _widget
     logging.info('################ teardown session editor ###############'
                  '#')
     _widget.backend.stop()
     while _widget.backend.connected:
         QTest.qWait(100)
     del _widget
Пример #25
0
def test_encodings(editor):
    with pytest.raises(UnicodeDecodeError):
        editor.file.open(PATH, encoding="utf-8", use_cached_encoding=False)
    editor.panels.append(panels.EncodingPanel(), panels.EncodingPanel.Position.TOP)
    editor.file.open(pth, encoding="utf-8", use_cached_encoding=False)
    editor.show()
    QTest.qWait(1000)
    assert editor.panels.get(panels.EncodingPanel).isVisible() is True
Пример #26
0
def test_delete(editor):
    mode = get_mode(editor)
    mode.auto_reload = False
    os.remove(file_path)
    QTest.qWait(1000)
    with open(file_path, 'w') as f:
        f.write("test file initial")
    editor.file.open(file_path)
Пример #27
0
def test_cancel_operations(app):
    app.file.open_file(path_interactive)
    QTest.qWait(500)
    app.cobol.run()
    QTest.qWait(500)
    assert not app.win.ui.actionCompile.isEnabled()
    app.cobol.cancel()
    assert app.win.ui.actionCompile.isEnabled()
Пример #28
0
def test_goto_variable(editor):
    editor.clear()
    code = "a = 15\nprint(a)"
    editor.setPlainText(code)
    mode = get_mode(editor)
    TextHelper(editor).goto_line(2, len('print(a)') - 2)
    mode.request_goto()
    QTest.qWait(5000)
def test_goto_variable(editor):
    editor.clear()
    code = "a = 15\nprint(a)"
    editor.setPlainText(code)
    mode = get_mode(editor)
    TextHelper(editor).goto_line(2, len('print(a)') - 2)
    mode.request_goto()
    QTest.qWait(5000)
Пример #30
0
 def fin():
     global _widget
     logging.info('################ teardown session editor ###############'
                  '#')
     _widget.backend.stop()
     while _widget.backend.connected:
         QTest.qWait(100)
     del _widget
Пример #31
0
def test_fs_treeview():
    tv = FileSystemTreeView()
    tv.set_context_menu(FileSystemContextMenu())
    tv.set_root_path(__file__)
    tv.show()
    QTest.qWait(500)
    tv.close()
    del tv
Пример #32
0
def test_modif_autoreload(editor):
    mode = get_mode(editor)
    mode.auto_reload = False
    mode = get_mode(editor)
    mode.auto_reload = True
    with open(file_path, 'r') as f:
        with open(file_path, 'w') as f2:
            f2.write("test file %s" % datetime.datetime.now())
    QTest.qWait(1000)
Пример #33
0
def test_successive_requests(editor):
    mode = get_mode(editor)
    QTest.qWait(1000)
    TextHelper(editor).goto_line(3)
    # only the first request should be accepted
    ret1 = mode.request_completion()
    ret2 = mode.request_completion()
    assert ret1 is True
    assert ret2 is False
Пример #34
0
def test_delay_job_runner():
    print('test delay job runner')
    global editor
    editor = CodeEdit()
    job_runner = utils.DelayJobRunner()
    job_runner.request_job(job)
    QTest.qWait(1000)
    job_runner.request_job(job)
    QTest.qWait(1000)
Пример #35
0
def test_delay_job_runner():
    print('test delay job runner')
    global editor
    editor = CodeEdit()
    job_runner = utils.DelayJobRunner()
    job_runner.request_job(job)
    QTest.qWait(1000)
    job_runner.request_job(job)
    QTest.qWait(1000)
Пример #36
0
def test_occurrences(editor, underlined):
    editor.file.open(__file__)
    mode = get_mode(editor)
    mode.underlined = underlined
    assert len(mode._decorations) == 0
    assert mode.delay == 1000
    TextHelper(editor).goto_line(16, 7)
    QTest.qWait(2000)
    assert len(mode._decorations) == 22
Пример #37
0
def test_modif_autoreload(editor):
    mode = get_mode(editor)
    mode.auto_reload = False
    mode = get_mode(editor)
    mode.auto_reload = True
    with open(file_path, 'r') as f:
        with open(file_path, 'w') as f2:
            f2.write("test file %s" % datetime.datetime.now())
    QTest.qWait(1000)
Пример #38
0
def test_comment_selection(editor):
    editor.clear()
    editor.setPlainText('import os;\n  \ndef foo():\n    print("bar")')
    QTest.qWait(100)
    mode = get_mode(editor)
    editor.selectAll()
    mode.comment()
    QTest.qWait(100)
    assert editor.toPlainText() == '# import os;\n  \n# def foo():\n#     print("bar")'
Пример #39
0
def test_successive_requests(editor):
    mode = get_mode(editor)
    QTest.qWait(1000)
    TextHelper(editor).goto_line(3)
    # only the first request should be accepted
    ret1 = mode.request_completion()
    ret2 = mode.request_completion()
    assert ret1 is True
    assert ret2 is True
Пример #40
0
def test_mouse_move(editor):
    panel = get_panel(editor)
    panel.clear_markers()
    marker = panels.Marker(1, icon=':/pyqode-icons/rc/edit-undo.png',
                           description='Marker description')
    panel.add_marker(marker)
    y_pos = TextHelper(editor).line_pos_from_number(0)
    QTest.mouseMove(panel, QtCore.QPoint(3, y_pos))
    QTest.qWait(1000)
    QTest.mouseMove(panel, QtCore.QPoint(1000, 1000))
Пример #41
0
def test_duplicate_line(editor):
    QTest.qWait(1000)
    TextHelper(editor).goto_line(0)
    editor.duplicate_line()
    assert editor.toPlainText().startswith(get_first_line(editor) + '\n' +
                                           get_first_line(editor))
    editor.setPlainText('foo', '', 'utf-8')
    editor.duplicate_line()
    assert editor.toPlainText() == 'foo\nfoo'
    assert editor.textCursor().position() == 7
Пример #42
0
def test_do_home_key(editor):
    QTest.qWait(2000)
    helper = TextHelper(editor)
    helper.goto_line(336, 29)
    assert editor.textCursor().positionInBlock() == 29
    assert TextHelper(editor).line_indent() == 4
    editor._do_home_key()
    assert editor.textCursor().positionInBlock() == 4
    editor._do_home_key()
    assert editor.textCursor().positionInBlock() == 0
Пример #43
0
def test_goto_line_dlg(editor):
    if os.environ['QT_API'] != 'pyqt5':
        # accept_mbox/reject_mbox crash with pyqt5. I still don't understand
        # why but this looks like a bug in pyqt5
        QtCore.QTimer.singleShot(1500, accept_mbox)
        editor.goto_line()
        QTest.qWait(1000)
        QtCore.QTimer.singleShot(1500, reject_mbox)
        editor.goto_line()
        QTest.qWait(1000)
Пример #44
0
def test_close(editor):
    panel = get_panel(editor)
    panel.on_search()
    editor.show()
    QTest.qWait(1000)
    assert panel.isVisible()
    panel.on_close()
    assert not panel.isVisible()
    QTest.qWait(100)
    panel.on_search()
Пример #45
0
def test_add_messages(editor):
    mode = get_mode(editor)
    mode.clear_messages()
    status = [modes.CheckerMessages.ERROR, modes.CheckerMessages.WARNING,
              modes.CheckerMessages.INFO]
    mode.add_messages([modes.CheckerMessage('desc', random.choice(status),
                                            10 + i)
                       for i in range(500)])
    assert len(mode._messages) < 500
    QTest.qWait(500)
Пример #46
0
def test_calltips(editor):
    editor.clear()
    mode = get_mode(editor)
    assert editor.backend.connected
    assert mode is not None
    editor.setPlainText("open(__file_")
    TextHelper(editor).goto_line(1, len('open(__file_'))
    QTest.keyPress(editor, ',')
    QTest.keyRelease(editor, ',')
    QTest.qWait(1000)