def test_esc_on_widget_closes(self): QTest.keyClick(core.mainWindow(), Qt.Key_F, Qt.ControlModifier) widget = _findSearchController()._widget self.assertFalse(widget.isHidden()) QTest.keyClick(widget, Qt.Key_Escape) self.assertTrue(widget.isHidden())
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_subscriptions(self): QTest.mouseClick(window.left_menu_button_subscriptions, Qt.LeftButton) self.screenshot(window, name="subscriptions_loading") self.wait_for_list_populated(window.subscribed_channels_list) self.screenshot(window, name="subscriptions") # Sort window.subscribed_channels_list.sortByColumn(1, 1) self.wait_for_list_populated(window.subscribed_channels_list) self.screenshot(window, name="subscriptions_sorted") max_items = min(window.subscribed_channels_list.model().total_items, 50) self.assertLessEqual(window.subscribed_channels_list.verticalHeader().count(), max_items) # Filter old_num_items = window.subscribed_channels_list.verticalHeader().count() QTest.keyClick(window.subscribed_channels_filter_input, '1') self.wait_for_list_populated(window.subscribed_channels_list) self.screenshot(window, name="subscriptions_filtered") self.assertLessEqual(window.subscribed_channels_list.verticalHeader().count(), old_num_items) window.subscribed_channels_filter_input.setText('') self.wait_for_list_populated(window.subscribed_channels_list) # Unsubscribe and subscribe again index = self.get_index_of_row(window.subscribed_channels_list, 0) window.subscribed_channels_list.on_subscribe_control_clicked(index) QTest.qWait(200) self.screenshot(window, name="unsubscribed") window.subscribed_channels_list.on_subscribe_control_clicked(index) QTest.qWait(200)
def continueFunc(dialog): page = dialog._pageForItem["Navigator"] self.assertEqual(page.lExecuteError.text(), ('You are trying to use etags from the Emacs package, but it is not supported. ' 'Use Exuberant Ctags.')) QTest.keyClick(dialog, Qt.Key_Enter)
def continueFunc(dialog): page = dialog._pageForItem["Plugins"] item = dialog._itemByPath(["Plugins"]) item.setSelected(True) page.update(self._ONE_USERPLUGINS) titleCard = \ page.children()[0].children()[0].children()[0].children()[2] enableBtn = titleCard.children()[2].children()[2].buttons()[0] self.assertEqual("Enable", enableBtn.text(), "Buttontext differs from Enable") self.assertFalse(enableBtn.isDown(), 'Button should not be down') QTest.mouseClick(enableBtn, Qt.LeftButton) self.assertEqual("Disable", enableBtn.text(), "Buttontext differs from Disable") self.assertTrue(enableBtn.isDown(), 'Button should be down') self.assertEqual( "testplugin0", core.loadedPlugins()[-1].__module__, 'Last module name should be userplugins.testplugin0') lenBeforeClick = len(core.loadedPlugins()) QTest.mouseClick(enableBtn, Qt.LeftButton) self.assertEqual("Enable", enableBtn.text(), "Buttontext differs from Enable") self.assertFalse(enableBtn.isDown(), 'Button should not be down') self.assertEqual( lenBeforeClick - 1, len(core.loadedPlugins()), "Length of loaded plugins should be one fewer after undload.") QTest.keyClick(dialog, Qt.Key_Escape)
def test_whole_word(self): qpart = core.workspace().currentDocument().qutepart qpart.text = _TEXT_WHOLE_WORD # select first 'string' QTest.keyClick(core.mainWindow(), Qt.Key_F, Qt.ControlModifier) self.keyClicks("bar") self.assertEqual(qpart.cursorPosition[0], 1) # 2 items found self.keyClick(Qt.Key_F3) self.assertEqual(qpart.cursorPosition[0], 2) self.keyClick(Qt.Key_F3) self.assertEqual(qpart.cursorPosition[0], 1) # only 1 item found QTest.mouseClick(_findSearchController()._widget.cbWholeWord, Qt.LeftButton) self.assertEqual(qpart.cursorPosition[0], 2) self.keyClick(Qt.Key_F3) self.assertEqual(qpart.cursorPosition[0], 2) # not moved, only line 2 # only 1 item found in reg exp mode qpart.cursorPosition = (0, 0) QTest.mouseClick(_findSearchController()._widget.cbRegularExpression, Qt.LeftButton) self.assertEqual(qpart.cursorPosition[0], 2) self.keyClick(Qt.Key_F3) self.assertEqual(qpart.cursorPosition[0], 2) # not moved, only line 2
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_expression_line_edit(self): e = ExpressionLineEdit() e.setCompleter(QCompleter(self.form.simulator_tab_controller.completer_model, e)) e.setValidator(RuleExpressionValidator(self.form.simulator_tab_controller.sim_expression_parser)) self.assertEqual(e.text(), "") QTest.keyClick(e, Qt.Key_R, Qt.NoModifier) self.assertEqual(e.text(), "r")
def continueFunc(dialog): page = dialog._pageForItem["Editor/Autocompletion"] page.gbAutoCompletion.setChecked(enabled) page.sThreshold.setValue(threshold) self.assertTrue(page.lcdNumber.value(), threshold) QTest.keyClick(dialog, Qt.Key_Enter)
def testChangeArgs(self): main_win, w = self.createWidget() QTest.keyClicks(w.args_line, "-foo -bar") QTest.keyClick(w.args_line, Qt.Key_Enter) self.assertEqual(w.args_line.text(), "-foo -bar") cmd, args = w.buildCommand("input.i") self.assertIn("-foo", args) self.assertIn("-bar", args)
def test_type_and_search(self): QTest.keyClick(core.mainWindow(), Qt.Key_F, Qt.ControlModifier) qpart = core.workspace().currentDocument().qutepart self.keyClicks("string") self.assertEqual(qpart.cursorPosition, (6, 18)) self.assertEqual(qpart.selectedText, "string")
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)
def test_select_and_search(self): qpart = core.workspace().currentDocument().qutepart # select first 'string' qpart.selectedPosition = ((6, 12), (6, 18)) QTest.keyClick(core.mainWindow(), Qt.Key_F, Qt.ControlModifier) self.keyClick(Qt.Key_F3) self.assertEqual(qpart.cursorPosition, (7, 9)) self.assertEqual(qpart.selectedText, "string")
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 exec_test(): yield from asyncio.sleep(1) QTest.mouseClick(certification_dialog.radio_pubkey, Qt.LeftButton) QTest.keyClicks(certification_dialog.edit_pubkey, "FADxcH5LmXGmGFgdixSes6nWnC4Vb4pRUBYT81zQRhjn") QTest.mouseClick(certification_dialog.button_box.button(QDialogButtonBox.Ok), Qt.LeftButton) yield from asyncio.sleep(1) topWidgets = QApplication.topLevelWidgets() for w in topWidgets: if type(w) is QMessageBox: QTest.keyClick(w, Qt.Key_Enter)
def test_analyze_button_enocean(self): self.add_signal_to_form("enocean.complex") w = self.form.signal_tab_controller.signal_frames[1].ui.spinBoxCenterOffset w.setValue(0) QTest.keyClick(w, Qt.Key_Enter) w = self.form.signal_tab_controller.signal_frames[1].ui.spinBoxNoiseTreshold w.setValue(0.0111) QTest.keyClick(w, Qt.Key_Enter) self.cfc.ui.btnAnalyze.click() self.assertTrue(True)
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])
def continueFunc(dialog): page = dialog._pageForItem["Editor/Long Lines"] page.gbWrapEnabled.setChecked(enabled) if atWord: page.rbWrapAtWord.setChecked(True) else: page.rbWrapAnywhere.setChecked(True) QTest.keyClick(dialog, Qt.Key_Enter)
def test_generator_label(self): labels = self.cframe.proto_analyzer.protocol_labels self.assertEqual(len(labels), 2) # Open Protocol in Generator self.form.ui.tabWidget.setCurrentIndex(2) item = self.gframe.tree_model.rootItem.children[0].children[0] index = self.gframe.tree_model.createIndex(0, 0, item) rect = self.gframe.ui.treeProtocols.visualRect(index) self.assertEqual(len(self.gframe.ui.treeProtocols.selectedIndexes()), 0) QTest.mousePress(self.gframe.ui.treeProtocols.viewport(), Qt.LeftButton, pos=rect.center()) self.assertEqual(self.gframe.ui.treeProtocols.selectedIndexes()[0], index) mimedata = self.gframe.tree_model.mimeData(self.gframe.ui.treeProtocols.selectedIndexes()) self.gframe.table_model.dropMimeData(mimedata, 1, -1, -1, self.gframe.table_model.createIndex(0, 0)) self.assertEqual(self.gframe.table_model.row_count, 3) # Check Label in Generator labels = self.gframe.table_model.protocol.protocol_labels self.assertEqual(len(labels), 2) # Fuzz Label lbl = copy.deepcopy(self.gframe.table_model.protocol.messages[0].message_type[1]) self.gframe.table_model.protocol.messages[0].message_type[1] = lbl lbl.fuzz_values.append("1") lbl.add_fuzz_value() lbl.add_fuzz_value() lbl.add_fuzz_value() lbl.add_fuzz_value() lbl.fuzz_me = Qt.Checked self.assertEqual(len(lbl.fuzz_values), 5) self.gframe.refresh_label_list() self.gframe.refresh_table() self.gframe.ui.btnFuzz.setEnabled(True) self.gframe.ui.btnFuzz.click() self.assertTrue(lbl.active_fuzzing) self.assertIn(lbl, self.gframe.table_model.protocol.messages[0].message_type) self.assertEqual(self.gframe.table_model.row_count, 4 + 3) # Check if Background for fuzzed labels is drawn correctly self.__check_background_is_drawn(lbl, 43, 43) # Delete a line old_row_count = self.gframe.table_model.row_count self.gframe.ui.tableMessages.selectRow(2) QTest.keyClick(self.gframe.ui.tableMessages, Qt.Key_Delete) self.assertEqual(self.gframe.table_model.row_count, old_row_count - 1) self.__check_background_is_drawn(lbl, 43, 43) # Remove everything for i in range(old_row_count): self.gframe.ui.tableMessages.selectRow(0) QTest.keyClick(self.gframe.ui.tableMessages, Qt.Key_Delete) self.assertEqual(self.gframe.table_model.row_count, 0)
def test_expression_line_edit(self): e = ExpressionLineEdit() e.setCompleter( QCompleter(self.form.simulator_tab_controller.completer_model, e)) e.setValidator( RuleExpressionValidator( self.form.simulator_tab_controller.sim_expression_parser)) self.assertEqual(e.text(), "") QTest.keyClick(e, Qt.Key_R, Qt.NoModifier) self.assertEqual(e.text(), "r")
def test_1(self): self._rm() self.assertFalse(self._exists()) self.qpart.show() def acceptDialog(): QTest.keyClick(self.app.focusWidget(), Qt.Key_Enter, Qt.NoModifier) QTimer.singleShot(1000, acceptDialog) QTest.keyClick(self.qpart, Qt.Key_P, Qt.ControlModifier) self.assertTrue(self._exists()) self._rm()
def test_7(self): """Smartly indent python""" self.qpart.detectSyntax(language='Python') QTest.keyClicks(self.qpart, "def main():") QTest.keyClick(self.qpart, Qt.Key_Enter) self.assertEqual(self.qpart.cursorPosition, (1, 4)) QTest.keyClicks(self.qpart, "return 7") QTest.keyClick(self.qpart, Qt.Key_Enter) self.assertEqual(self.qpart.cursorPosition, (2, 0))
def test_warning(self): self.qpart.show() self.qpart.text = 'a\n' * 300 warning = [None] def _saveWarning(text): warning[0] = text self.qpart.userWarning.connect(_saveWarning) QTest.keyClick(self.qpart, Qt.Key_End, Qt.AltModifier | Qt.ShiftModifier | Qt.ControlModifier) self.assertEqual(warning[0], 'Rectangular selection area is too big')
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_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_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 continueFunc(dialog): page = dialog._pageForItem["Editor/Indentation"] if useTabs: page.rbIndentationTabs.setChecked(True) else: page.rbIndentationSpaces.setChecked(True) page.sIndentationWidth.setValue(width) page.cbAutodetectIndent.setChecked(autoDetect) QTest.keyClick(dialog, Qt.Key_Enter)
def test_run_operation_stack_safe(self, op_info, keep_stack): op_name, params = op_info print( f"test_run_operation_stack_safe {op_name=} {params=} {keep_stack=}" ) QTest.qWait(SHOW_DELAY) index = self.op_window.filterSelector.findText(op_name) self.assertGreaterEqual( index, 0, f'Operation "{op_name}" not found in filterSelector') self.op_window.filterSelector.setCurrentIndex(index) QTest.qWait(SHOW_DELAY) for param_name, param_value in params: widget = self._get_operation_parameter_widget( self.op_window.filterPropertiesLayout, param_name) widget.selectAll() QTest.keyClicks(widget, param_value) QTest.keyClick(widget, Qt.Key_Return) QTest.qWait(SHOW_DELAY) self.op_window.safeApply.setChecked(True) QTest.qWait(SHOW_DELAY) def mock_wait_for_stack_choice(self, new_stack: Images, stack_uuid: UUID): print("mock_wait_for_stack_choice") stack_choice = StackChoicePresenter(self.original_images_stack, new_stack, self, stack_uuid) stack_choice.show() QTest.qWait(SHOW_DELAY) if keep_stack == "new": QTest.mouseClick(stack_choice.view.newDataButton, Qt.MouseButton.LeftButton) else: QTest.mouseClick(stack_choice.view.originalDataButton, Qt.MouseButton.LeftButton) return stack_choice.use_new_data with mock.patch( "mantidimaging.gui.windows.operations.presenter.FiltersWindowPresenter._wait_for_stack_choice", mock_wait_for_stack_choice): QTimer.singleShot(SHORT_DELAY, lambda: self._click_messageBox("OK")) QTest.mouseClick(self.op_window.applyButton, Qt.MouseButton.LeftButton) QTest.qWait(SHORT_DELAY) self._wait_until( lambda: self.op_window.presenter.filter_is_running is False) self.main_window.filters.close() QTest.qWait(SHOW_DELAY)
def step_impl(context, pos): """ :type context: behave.runner.Context """ viewport = context.tracklist.viewport() menu = open_context_menu_at(context, row=int(pos), column=TracklistModel.Columns.title) for _ in range(3): QTest.keyClick(menu, Qt.Key_Down) QTest.keyClick(menu, Qt.Key_Enter)
def test_analyze_button_enocean(self): self.add_signal_to_form("enocean.complex") w = self.form.signal_tab_controller.signal_frames[ 1].ui.spinBoxCenterOffset w.setValue(0) QTest.keyClick(w, Qt.Key_Enter) w = self.form.signal_tab_controller.signal_frames[ 1].ui.spinBoxNoiseTreshold w.setValue(0.0111) QTest.keyClick(w, Qt.Key_Enter) self.cfc.ui.btnAnalyze.click() self.assertTrue(True)
def exec_test(): yield from asyncio.sleep(1) self.account.wallets[0].caches[self.community.currency].available_sources = yield from self.wallet.sources(self.community) QTest.mouseClick(transfer_dialog.radio_pubkey, Qt.LeftButton) QTest.keyClicks(transfer_dialog.edit_pubkey, "FADxcH5LmXGmGFgdixSes6nWnC4Vb4pRUBYT81zQRhjn") transfer_dialog.spinbox_amount.setValue(10) QTest.mouseClick(transfer_dialog.button_box.button(QDialogButtonBox.Ok), Qt.LeftButton) yield from asyncio.sleep(1) topWidgets = QApplication.topLevelWidgets() for w in topWidgets: if type(w) is QMessageBox: QTest.keyClick(w, Qt.Key_Enter)
def test_shape_change(self): """Test change shape comboBox""" shape_combo_box = self.form.ui.shapeComboBox QTest.keyClick(shape_combo_box, Qt.Key_PageUp) all_items = [ self.form.ui.shapeComboBox.itemText(i) for i in range(self.form.ui.shapeComboBox.count()) ] for i in range(shape_combo_box.count() - 2): shape_combo_box.setCurrentIndex(i) current_shape = self.form.ui.shapeComboBox.currentText() self.assertEqual(all_items[i], current_shape)
def test_market_create_order(self): QTest.mouseClick(window.token_balance_widget, Qt.LeftButton) QTest.mouseClick(window.trade_button, Qt.LeftButton) self.wait_for_signal(window.market_page.received_wallets) QTest.mouseClick(window.create_bid_button, Qt.LeftButton) self.screenshot(window, name="market_create_order_dialog") # Enter some bogus input QTest.keyClick(window.market_page.dialog.dialog_widget.order_quantity_input, 't') QTest.keyClick(window.market_page.dialog.dialog_widget.order_price_input, 't') QTest.mouseClick(window.market_page.dialog.dialog_widget.create_button, Qt.LeftButton) self.screenshot(window, name="market_create_order_dialog_error")
def enter_credentials(): yield task.deferLater(reactor, 1, defer.succeed, True) print 'got here:', qt5.app.opengl # QTest.keyClick(qt5.app.opengl, Qt.Key_Tab, Qt.NoModifier, 10) QTest.keyClicks(qt5.app.opengl, '*****@*****.**', Qt.NoModifier, 10) QTest.keyClick(qt5.app.opengl, Qt.Key_Tab, Qt.NoModifier, 100) QTest.keyClicks(qt5.app.opengl, 'Tererdfcv1!I', Qt.NoModifier, 10) QTest.keyClick(qt5.app.opengl, Qt.Key_Tab, Qt.NoModifier, 100) QTest.keyClick(qt5.app.opengl, Qt.Key_Tab, Qt.NoModifier, 100) QTest.keyClick(qt5.app.opengl, Qt.Key_Enter, Qt.NoModifier, 100)
def test_search(self): window.top_search_bar.setText("trib") QTest.keyClick(window.top_search_bar, Qt.Key_Enter) self.wait_for_list_populated(window.search_results_list, num_items=20) self.screenshot(window, name="search_results_all") QTest.mouseClick(window.search_results_channels_button, Qt.LeftButton) self.wait_for_list_populated(window.search_results_list) self.screenshot(window, name="search_results_channels") QTest.mouseClick(window.search_results_torrents_button, Qt.LeftButton) self.wait_for_list_populated(window.search_results_list) self.screenshot(window, name="search_results_torrents")
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 tst_channels_widget(window, widget, widget_name, sort_column=1, test_filter=True, test_subscribe=True): wait_for_list_populated(widget.content_table) screenshot(window, name=f"{widget_name}-page") # Sort widget.content_table.sortByColumn(sort_column, 1) wait_for_list_populated(widget.content_table) screenshot(window, name=f"{widget_name}-sorted") max_items = min(widget.content_table.model().channel_info["total"], 50) assert widget.content_table.verticalHeader().count() <= max_items # Filter if test_filter: old_num_items = widget.content_table.verticalHeader().count() QTest.keyClick(widget.channel_torrents_filter_input, 'r') wait_for_list_populated(widget.content_table) screenshot(window, name=f"{widget_name}-filtered") assert widget.content_table.verticalHeader().count() <= old_num_items QTest.keyPress(widget.channel_torrents_filter_input, Qt.Key_Backspace) wait_for_list_populated(widget.content_table) if test_subscribe: # Unsubscribe and subscribe again index = get_index_of_row_column( widget.content_table, 0, widget.model.column_position[Column.VOTES]) widget.content_table.on_subscribe_control_clicked(index) QTest.qWait(200) window.dialog.button_clicked.emit(0) screenshot(window, name=f"{widget_name}-unsubscribed") widget.content_table.on_subscribe_control_clicked(index) QTest.qWait(200) window.dialog.button_clicked.emit(0) # Test channel view index = get_index_of_row_column(widget.content_table, 0, widget.model.column_position[Column.NAME]) widget.content_table.on_table_item_clicked(index) wait_for_list_populated(widget.content_table) screenshot(window, name=f"{widget_name}-channel_loaded") # Click the first torrent index = get_index_of_row_column(widget.content_table, 0, widget.model.column_position[Column.NAME]) widget.content_table.on_table_item_clicked(index) QTest.qWait(100) screenshot(window, name=f"{widget_name}-torrent_details")
def click(key): clock_before = time.clock() if isinstance(key, str): QTest.keyClicks(ninja_editor, key) else: QTest.keyClick(ninja_editor, key) while qapp.hasPendingEvents(): qapp.processEvents() clock_after = time.clock() ms = int((clock_after - clock_before) * 100) click_times[ms] = click_times.get(ms, 0) + 1
def continueFunc(dialog): page = dialog._pageForItem["Lint/Python"] if enabled is not None: page.gbEnabled.setChecked(enabled) if checkedRb is not None: getattr(page, checkedRb).setChecked(True) if path is not None: page.leFlake8Path.setText(path) QTest.keyClick(dialog, Qt.Key_Enter)
def test_analyze_button_enocean(self): self.add_signal_to_form("enocean.coco") w = self.form.signal_tab_controller.signal_frames[1].ui.spinBoxCenterOffset w.setValue(0) QTest.keyClick(w, Qt.Key_Enter) w = self.form.signal_tab_controller.signal_frames[1].ui.spinBoxNoiseTreshold w.setValue(0.0111) QTest.keyClick(w, Qt.Key_Enter) self.cfc.assign_labels_action.setChecked(True) self.cfc.assign_message_type_action.setChecked(True) self.cfc.assign_participants_action.setChecked(True) self.cfc.ui.btnAnalyze.click() self.assertTrue(True)
def test_copy_paste_utf8(self): self.qpart.show() self.qpart.text = 'фыва' for i in range(3): QTest.keyClick(self.qpart, Qt.Key_Right, Qt.AltModifier | Qt.ShiftModifier) QTest.keyClick(self.qpart, Qt.Key_C, Qt.ControlModifier) QTest.keyClick(self.qpart, Qt.Key_Right) QTest.keyClick(self.qpart, Qt.Key_Space) QTest.keyClick(self.qpart, Qt.Key_V, Qt.ControlModifier) self.assertEqual(self.qpart.text, 'фыва фыв')
def click(key): clockBefore = time.clock() if isinstance(key, str): QTest.keyClicks(q, key) else: QTest.keyClick(q, key) while app.hasPendingEvents(): app.processEvents() clockAfter = time.clock() ms = int((clockAfter - clockBefore) * 1000) clickTimes[ms] = clickTimes.get(ms, 0) + 1
def test_select_and_search_multiline(self): qpart = core.workspace().currentDocument().qutepart qpart.text = _TEXT_MULTILINE_SEARCH # select first 'string' qpart.selectedPosition = ((0, 0), (1, 1)) QTest.keyClick(core.mainWindow(), Qt.Key_F, Qt.ControlModifier) self.keyClick(Qt.Key_F3) self.assertEqual(qpart.selectedPosition, ((3, 0), (4, 1))) self.assertEqual(qpart.selectedText, "a\nb")
def continueFunc(dialog): page = dialog._pageForItem["Plugins"] item = dialog._itemByPath(["Plugins"]) item.setSelected(True) page.update(self._EMPTY_USERPLUGINS) introLabel = \ page.children()[0].children()[0].children()[0].children()[1] self.assertNotEqual( introLabel.text().find("<code>0</code>"), -1) self.assertNotEqual( introLabel.text().find(PLUGIN_DIR_PATH), -1) QTest.keyClick(dialog, Qt.Key_Enter)
async def exec_test(): await asyncio.sleep(1) QTest.mouseClick(certification_dialog.ui.radio_pubkey, Qt.LeftButton) QTest.keyClicks(certification_dialog.ui.edit_pubkey, "FADxcH5LmXGmGFgdixSes6nWnC4Vb4pRUBYT81zQRhjn") QTest.mouseClick( certification_dialog.ui.button_box.button(QDialogButtonBox.Ok), Qt.LeftButton) await asyncio.sleep(3) topWidgets = QApplication.topLevelWidgets() for w in topWidgets: if type(w) is QMessageBox: QTest.keyClick(w, Qt.Key_Enter)
def keySequenceClicks(widget, keySequence, extraModifiers=Qt.NoModifier): """Use QTest.keyClick to send a QKeySequence to a widget.""" # This is based on a simplified version of http://stackoverflow.com/questions/14034209/convert-string-representation-of-keycode-to-qtkey-or-any-int-and-back. I added code to handle the case in which the resulting key contains a modifier (for example, Shift+Home). When I execute QTest.keyClick(widget, keyWithModifier), I get the error "ASSERT: "false" in file .\qasciikey.cpp, line 495". To fix this, the following code splits the key into a key and its modifier. # Bitmask for all modifier keys. modifierMask = int(Qt.ShiftModifier | Qt.ControlModifier | Qt.AltModifier | Qt.MetaModifier | Qt.KeypadModifier) ks = QKeySequence(keySequence) # For now, we don't handle a QKeySequence("Ctrl") or any other modified by itself. assert ks.count() > 0 for _, key in enumerate(ks): modifiers = Qt.KeyboardModifiers((key & modifierMask) | extraModifiers) key = key & ~modifierMask QTest.keyClick(widget, key, modifiers)
def test_completion_enabled(self): self._assertNotVisible() self.qpart.completionEnabled = True QTest.keyClicks(self.qpart, "comple") self._assertVisible() for i in range(len('comple')): QTest.keyClick(self.qpart, Qt.Key_Backspace) self._assertNotVisible() self.qpart.completionEnabled = False QTest.keyClicks(self.qpart, "comple") self._assertNotVisible()
def testIncrementorClampMaxByIncrementor(self): QTest.keyClicks(self.dw.inLeft, "179") QTest.keyClicks(self.dw.inLeftMin, "59") QTest.keyClick(self.dw.inLeftMin, QtCore.Qt.Key_Up) self.assertEqual("180", self.dw.inLeft.text()) self.assertEqual("0", self.dw.inLeftMin.text()) self.assertEqual(helperFormatCoordinates("180.000000000"), self.dw.inLeftDec.text()) QTest.keyClick(self.dw.inLeftMin, QtCore.Qt.Key_Up) self.assertEqual("180", self.dw.inLeft.text()) self.assertEqual("0", self.dw.inLeftMin.text()) self.assertEqual(helperFormatCoordinates("180.000000000"), self.dw.inLeftDec.text())
def test_paste_replace_selection(self): self.qpart.show() self.qpart.text = 'asdf' for i in range(4): QTest.keyClick(self.qpart, Qt.Key_Right, Qt.AltModifier | Qt.ShiftModifier) QTest.keyClick(self.qpart, Qt.Key_C, Qt.ControlModifier) QTest.keyClick(self.qpart, Qt.Key_End) QTest.keyClick(self.qpart, Qt.Key_Left, Qt.ShiftModifier) QTest.keyClick(self.qpart, Qt.Key_V, Qt.ControlModifier) self.assertEqual(self.qpart.text, 'asdasdf')
def test_copy_paste(self): self.qpart.indentUseTabs = True self.qpart.show() self.qpart.text = 'xx 123 yy\n' + \ 'xx 456 yy\n' + \ 'xx 789 yy\n' + \ '\n' + \ 'asdfghijlmn\n' + \ 'x\t\n' + \ '\n' + \ '\t\t\n' + \ 'end\n' self.qpart.cursorPosition = 0, 3 for i in range(3): QTest.keyClick(self.qpart, Qt.Key_Right, Qt.AltModifier | Qt.ShiftModifier) for i in range(2): QTest.keyClick(self.qpart, Qt.Key_Down, Qt.AltModifier | Qt.ShiftModifier) QTest.keyClick(self.qpart, Qt.Key_C, Qt.ControlModifier) self.qpart.cursorPosition = 4, 10 QTest.keyClick(self.qpart, Qt.Key_V, Qt.ControlModifier) self.assertEqual( self.qpart.text, 'xx 123 yy\nxx 456 yy\nxx 789 yy\n\nasdfghijlm123n\nx\t 456\n\t\t 789\n\t\t\nend\n' )
def test_search(tribler_api, window): window.top_search_bar.setText("trib") QTest.keyClick(window.top_search_bar, Qt.Key_Enter) wait_for_variable(window, "search_results_page.search_request") screenshot(window, name="search_loading_page") QTest.mouseClick(window.search_results_page.show_results_button, Qt.LeftButton) tst_channels_widget( window, window.search_results_page.results_page, "search_results", sort_column=2, test_filter=False, test_subscribe=False, )
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')
def testCreateVirtualHelix(cnapp): """Alt+Click on a 5' or 3' endpoint extends it to its boundary.""" # Create a new Honeycomb part main_toolbar = cnapp.window.main_toolbar new_dna_part_button = main_toolbar.widgetForAction( cnapp.window.action_new_dnapart) QTest.mouseClick(new_dna_part_button, Qt.LeftButton, delay=DELAY) # Click each SliceHelix slicerootitem = cnapp.window.sliceroot assert len(slicerootitem.instance_items) == 1 slice_part_item = list(slicerootitem.instance_items.values())[0] QTest.keyClick(cnapp.window, Qt.Key_H, delay=DELAY) QTest.keyClick(cnapp.window, Qt.Key_N, delay=DELAY) # could try different positions cnapp.graphicsItemClick(slice_part_item, Qt.LeftButton, delay=DELAY) cnapp.processEvents()
def insertVectors(self): # Add Vectors via the dialog self.window.select_strain_component_action.trigger() widget = self.getDockedWidget(self.window.docks, InsertVectorDialog.dock_flag) detector_names = list(widget.parent_model.instrument.detectors.keys()) QTest.mouseClick(widget.execute_button, Qt.LeftButton) QTest.keyClicks(widget.detector_combobox, detector_names[1][0], delay=50) QTest.keyClick(widget.component_combobox, Qt.Key_Down) click_check_box(widget.reverse_checkbox) QTest.mouseClick(widget.execute_button, Qt.LeftButton) QTest.qWait( WAIT_TIME // 5) # wait is necessary since vectors are created on another thread mv = widget.parent_model.measurement_vectors self.assertEqual(mv.shape, (2, 6, 1)) np.testing.assert_array_almost_equal(mv[0, :, 0], [1, 0, 0, 0, -1, 0], decimal=5) QTest.keyClicks(widget.alignment_combobox, "a") # QTest.mouseClick(widget.component_combobox, Qt.LeftButton, delay=100) QTest.keyClick(widget.component_combobox, Qt.Key_Down) QTest.mouseClick(widget.execute_button, Qt.LeftButton) QTest.qWait(WAIT_TIME // 5) QTest.keyClicks(widget.component_combobox, "k") QTest.keyClicks(widget.detector_combobox, detector_names[0][0], delay=50) edit_line_edit_text(widget.x_axis.form_lineedit, "1.0") edit_line_edit_text(widget.y_axis.form_lineedit, "1.0") QTest.mouseClick(widget.execute_button, Qt.LeftButton) QTest.qWait(WAIT_TIME // 5) mv = widget.parent_model.measurement_vectors self.assertEqual(mv.shape, (2, 6, 2)) np.testing.assert_array_almost_equal( mv[0, :, 1], [-0.70711, -0.70711, 0, 0, 0, -1.0], decimal=5) # Test Vector Manager widget = self.getDockedWidget(self.window.docks, VectorManager.dock_flag) self.assertTrue(widget.isVisible())