Example #1
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)
Example #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
Example #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
Example #4
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
Example #5
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
Example #6
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
Example #7
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'
Example #8
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)
Example #9
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
Example #10
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)
Example #11
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
Example #12
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
Example #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
Example #14
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'
Example #15
0
def test_mouse_press(editor):
    panel = get_panel(editor)
    y_pos = TextHelper(editor).line_pos_from_number(0)
    QTest.mousePress(panel, QtCore.Qt.RightButton, QtCore.Qt.NoModifier,
                     QtCore.QPoint(1000, 1000))
    QTest.mousePress(panel, QtCore.Qt.RightButton, QtCore.Qt.NoModifier,
                     QtCore.QPoint(3, y_pos))
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
Example #17
0
def reject_mbox():
    print('reject')
    widgets = QtWidgets.QApplication.instance().topLevelWidgets()
    for w in widgets:
        print(w)
        if isinstance(w, QtWidgets.QDialog):
            QTest.keyPress(w, QtCore.Qt.Key_Escape)
Example #18
0
def test_key_pressed(editor):
    editor.free_format = False
    editor.comment_indicator = '*> '
    editor.setPlainText('123456DISPLAY "Hello".', '', '')
    QTest.keyPress(editor, QtCore.Qt.Key_Slash, QtCore.Qt.ControlModifier)
    assert editor.toPlainText() == '123456*> DISPLAY "Hello".'
    QTest.keyPress(editor, QtCore.Qt.Key_Slash, QtCore.Qt.ControlModifier)
    assert editor.toPlainText() == '123456DISPLAY "Hello".'
Example #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()
Example #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)
Example #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)
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()
Example #23
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
Example #24
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()
Example #25
0
 def fin():
     global _widget
     logging.info('################ teardown session editor ###############'
                  '#')
     _widget.backend.stop()
     while _widget.backend.connected:
         QTest.qWait(100)
     del _widget
Example #26
0
def test_key_pressed(editor):
    editor.free_format = False
    editor.comment_indicator = '*> '
    editor.setPlainText('123456DISPLAY "Hello".', '', '')
    QTest.keyPress(editor, QtCore.Qt.Key_Slash, QtCore.Qt.ControlModifier)
    assert editor.toPlainText() == '123456*> DISPLAY "Hello".'
    QTest.keyPress(editor, QtCore.Qt.Key_Slash, QtCore.Qt.ControlModifier)
    assert editor.toPlainText() == '123456DISPLAY "Hello".'
Example #27
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()
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)
Example #29
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
Example #30
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)
Example #31
0
 def fin():
     global _widget
     logging.info('################ teardown session editor ###############'
                  '#')
     _widget.backend.stop()
     while _widget.backend.connected:
         QTest.qWait(100)
     del _widget
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)
Example #33
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()
Example #34
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)
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
Example #36
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)
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)
Example #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")'
Example #39
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
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
Example #41
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)
Example #42
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()
Example #43
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
Example #44
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
Example #45
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)
Example #46
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)
Example #47
0
def test_occurrences(editor):
    for underlined in [True, False]:
        editor.file.open(__file__)
        assert editor.backend.running is True
        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) > 0