예제 #1
0
 def changeParamCombo(self, w, path, value_name, new_value, old_path=None):
     param_widget = self.getParamWidget(w, path, value_name, old_path)
     self.assertNotEqual(param_widget, None)
     pos = param_widget.valueTestPosition()
     widget = param_widget.valueTestWidget()
     QTest.mouseMove(widget, pos)
     Testing.process_events(self.qapp, t=PROCESS_EVENT_TIME)
     QTest.mouseClick(widget, Qt.LeftButton, pos=pos)
     # Now the selector should pop up which is a QListView
     list_views = Testing.findQObjectsByType(widget,
                                             "PyQt5.QtWidgets.QListView")
     self.assertEqual(len(list_views), 1)
     lv = list_views[0]
     model = lv.model()
     matches = model.findItems(new_value)
     self.assertEqual(len(matches), 1)
     model_idx = model.indexFromItem(matches[0])
     rect = lv.visualRect(model_idx)
     QTest.mouseMove(lv, pos=rect.center())
     Testing.process_events(self.qapp, t=PROCESS_EVENT_TIME)
     QTest.mouseClick(lv.viewport(),
                      Qt.LeftButton,
                      pos=rect.center(),
                      delay=100)
     Testing.process_events(self.qapp, t=PROCESS_EVENT_TIME)
예제 #2
0
 def test_rectangle_drawing(self):
     points = [[1, 1], [10, 10], [15, 15]]
     for i in points:
         for j in points:
             if (i[0] != j[0] or i[1] != j[1]):
                 p1 = QPoint()
                 p1.setX(i[0])
                 p1.setY(i[1])
                 p2 = QPoint()
                 p2.setX(j[0])
                 p2.setY(j[1])
                 # print('point', i, j, p1.x(), p1.y(), p2.x(), p2.y())
                 testCanv = Canvas()
                 testCanv.initialize()
                 p = QPainter(testCanv.pixmap())
                 p.setPen(
                     QPen(self.canvas.primary_color,
                          self.canvas.config['size'], Qt.SolidLine,
                          Qt.SquareCap, Qt.MiterJoin))
                 p.drawRect(QRect(p1, p2))
                 p.end()
                 self.canvas.reset()
                 self.canvas.set_mode('rect')
                 self.canvas.config['fill'] = False
                 QTest.mousePress(self.canvas, Qt.LeftButton, Qt.NoModifier,
                                  p1)
                 QTest.mouseMove(self.canvas, p2, 100)
                 QTest.mouseRelease(self.canvas, Qt.LeftButton,
                                    Qt.NoModifier, p2, 100)
                 print(img_not_fill(self.canvas.pixmap().toImage()))
                 # print(img_not_fill(testCanv.pixmap().toImage()))
                 self.assertEqual(
                     True,
                     img_equals(self.canvas.pixmap().toImage(),
                                testCanv.pixmap().toImage()))
예제 #3
0
 def changeParamTypeCombo(self, w, path, new_type, old_path=None):
     node_widget = self.getNodeWidget(w, path, old_path)
     self.assertNotEqual(node_widget, None)
     type_combo = Testing.findQObjectsByName(node_widget, "type_combo")
     self.assertEqual(len(type_combo), 1)
     target = type_combo[0]
     QTest.mouseMove(target)
     QTest.mouseClick(target, Qt.LeftButton, delay=100)
     # Now the selector should pop up which is a QListView
     list_views = Testing.findQObjectsByType(target,
                                             "PyQt5.QtWidgets.QListView")
     self.assertEqual(len(list_views), 1)
     lv = list_views[0]
     model = lv.model()
     matches = model.findItems(new_type)
     self.assertEqual(len(matches), 1)
     model_idx = model.indexFromItem(matches[0])
     rect = lv.visualRect(model_idx)
     QTest.mouseMove(lv, pos=rect.center())
     Testing.process_events(self.qapp, t=PROCESS_EVENT_TIME)
     QTest.mouseClick(lv.viewport(),
                      Qt.LeftButton,
                      pos=rect.center(),
                      delay=100)
     Testing.process_events(self.qapp, t=PROCESS_EVENT_TIME)
예제 #4
0
 def changeParamValueText(self,
                          w,
                          path,
                          value_name,
                          new_text,
                          old_path=None):
     param_widget = self.getParamWidget(w, path, value_name, old_path)
     self.assertNotEqual(param_widget, None)
     pos = param_widget.valueTestPosition()
     widget = param_widget.valueTestWidget()
     QTest.mouseMove(widget, pos)
     Testing.process_events(self.qapp, t=PROCESS_EVENT_TIME)
     QTest.mouseClick(widget, Qt.LeftButton, pos=pos)
     QTest.mouseDClick(widget, Qt.LeftButton, pos=pos)
     # The default editing widget on a QTreeWidgetItem is a QLineEdit.
     # But it doesn't seem to show up until the item has focus.
     # This is pretty brittle but seems to work OK for now.
     line_edit = Testing.findQObjectsByType(widget,
                                            "PyQt5.QtWidgets.QLineEdit")
     for obj in line_edit:
         if obj.objectName() == "":
             widget = obj
             break
     Testing.process_events(self.qapp, t=PROCESS_EVENT_TIME)
     QTest.keyClick(widget, Qt.Key_Backspace)
     QTest.keyClicks(widget, new_text)
     QTest.keyClick(widget, Qt.Key_Return)
     Testing.process_events(self.qapp, t=PROCESS_EVENT_TIME)
예제 #5
0
 def on_move_complete(self, scene, x, y):
     """ Simulate click on the button """
     QTest.mouseMove(scene.parent, QPoint(x, y))
     QTest.mousePress(scene.parent, Qt.LeftButton, delay=1000)
     self.pressed.emit()
     self.update()
     QTest.mouseRelease(scene.parent, Qt.LeftButton, delay=2000)
     self.update()
예제 #6
0
 def changeParamValueToggle(self, w, path, value_name, old_path=None):
     param_widget = self.getParamWidget(w, path, value_name, old_path)
     self.assertNotEqual(param_widget, None)
     pos = param_widget.valueTestPosition()
     widget = param_widget.valueTestWidget()
     QTest.mouseMove(widget, pos)
     Testing.process_events(self.qapp, t=PROCESS_EVENT_TIME)
     QTest.mouseClick(widget, Qt.LeftButton, pos=pos)
     Testing.process_events(self.qapp, t=PROCESS_EVENT_TIME)
예제 #7
0
 def changeParamValueToggle(self, w, path, value_name, old_path=None):
     param_widget = self.getParamWidget(w, path, value_name, old_path)
     self.assertNotEqual(param_widget, None)
     pos = param_widget.valueTestPosition()
     widget = param_widget.valueTestWidget()
     QTest.mouseMove(widget, pos)
     Testing.process_events(self.qapp, t=PROCESS_EVENT_TIME)
     QTest.mouseClick(widget, Qt.LeftButton, pos=pos)
     Testing.process_events(self.qapp, t=PROCESS_EVENT_TIME)
예제 #8
0
 def clickTab(self, app, tab_name):
     peacock_tab_widgets = Testing.findQObjectsByName(app, "PeacockMainWindow/tab_plugin")
     self.assertEqual(len(peacock_tab_widgets), 1)
     tabs = peacock_tab_widgets[0]
     for i in range(tabs.count()):
         if tabs.tabText(i) == tab_name:
             tab_bar = tabs.tabBar()
             rect = tab_bar.tabRect(i)
             QTest.mouseMove(tab_bar, rect.center())
             QTest.mouseClick(tab_bar, Qt.LeftButton, pos=rect.center(), delay=100)
             Testing.process_events(self.qapp, t=PROCESS_EVENT_TIME)
             return
예제 #9
0
    def add_one_pick(self):
        '''Add a single pick to pile_viewer'''
        pv = self.pile_viewer
        QTest.mouseDClick(pv.viewer, Qt.LeftButton)
        position_tl = pv.pos()
        geom = pv.frameGeometry()
        QTest.mouseMove(pv.viewer, pos=position_tl)
        QTest.mouseMove(pv.viewer, pos=(qc.QPoint(
            position_tl.x()+geom.x()/2., position_tl.y()+geom.y()/2.)))

        # This should be done also by mouseDClick().
        QTest.mouseRelease(pv.viewer, Qt.LeftButton)
        QTest.mouseClick(pv.viewer, Qt.LeftButton)
예제 #10
0
    def add_one_pick(self):
        '''Add a single pick to pile_viewer'''
        pv = self.pile_viewer
        QTest.mouseDClick(pv.viewer, Qt.LeftButton)
        position_tl = pv.pos()
        geom = pv.frameGeometry()
        QTest.mouseMove(pv.viewer, pos=position_tl)
        QTest.mouseMove(pv.viewer, pos=(qc.QPoint(
            position_tl.x()+geom.x()/2., position_tl.y()+geom.y()/2.)))

        # This should be done also by mouseDClick().
        QTest.mouseRelease(pv.viewer, Qt.LeftButton)
        QTest.mouseClick(pv.viewer, Qt.LeftButton)
예제 #11
0
    def mouseDrag(widget, press_on, release_on, button,
                  modifier=None, delay=-1):
        """ Convenience helper for dragging a QWidget
        Makes a drag with the mouse.

        Args:
            widget (QWidget):
            press_on (QPoint): this is the position where the mouse is pressed.
            release_on (QPoint): this is the position where the mouse is released.
        """
        if modifier is None:
            modifier = Qt.KeyboardModifiers()
        QTest.mousePress(widget, button, modifier, pos=press_on, delay=delay)
        QTest.mouseMove(widget, pos=release_on, delay=delay)
        QTest.mouseRelease(widget, button, modifier, pos=release_on, delay=delay)
예제 #12
0
    def mouseDrag(widget, press_on, release_on, button,
                  modifier=None, delay=-1):
        """ Convenience helper for dragging a QWidget
        Makes a drag with the mouse.

        Args:
            widget (QWidget):
            press_on (QPoint): this is the position where the mouse is pressed.
            release_on (QPoint): this is the position where the mouse is released.
        """
        if modifier is None:
            modifier = Qt.KeyboardModifiers()
        QTest.mousePress(widget, button, modifier, pos=press_on, delay=delay)
        QTest.mouseMove(widget, pos=release_on, delay=delay)
        QTest.mouseRelease(widget, button, modifier, pos=release_on, delay=delay)
예제 #13
0
 def clickTab(self, app, tab_name):
     peacock_tab_widgets = Testing.findQObjectsByName(
         app, "PeacockMainWindow/tab_plugin")
     self.assertEqual(len(peacock_tab_widgets), 1)
     tabs = peacock_tab_widgets[0]
     for i in range(tabs.count()):
         if tabs.tabText(i) == tab_name:
             tab_bar = tabs.tabBar()
             rect = tab_bar.tabRect(i)
             QTest.mouseMove(tab_bar, rect.center())
             QTest.mouseClick(tab_bar,
                              Qt.LeftButton,
                              pos=rect.center(),
                              delay=100)
             Testing.process_events(self.qapp, t=PROCESS_EVENT_TIME)
             return
예제 #14
0
    def clickOnTree(self, w, path, expand=False, include=False):
        tree = self.getTreeWidget(w)
        item = tree.findPathItem(path)
        self.assertNotEqual(item, None)
        tree.scrollToItem(item)
        tree.setCurrentItem(item)
        rect = tree.visualItemRect(item)
        viewport = tree.viewport()
        pos = rect.center()
        if expand or include:
            pos = rect.bottomLeft()
            pos.setY(pos.y() - rect.height() / 2)
        if include:
            pos.setX(pos.x() + 10)

        QTest.mouseMove(tree, pos)
        Testing.process_events(self.qapp, t=PROCESS_EVENT_TIME)
        QTest.mouseClick(viewport, Qt.LeftButton, delay=100, pos=pos)
        Testing.process_events(self.qapp, t=PROCESS_EVENT_TIME)
예제 #15
0
    def clickOnTree(self, w, path, expand=False, include=False):
        tree = self.getTreeWidget(w)
        item = tree.findPathItem(path)
        self.assertNotEqual(item, None)
        tree.scrollToItem(item)
        tree.setCurrentItem(item)
        rect = tree.visualItemRect(item)
        viewport = tree.viewport()
        pos = rect.center()
        if expand or include:
            pos = rect.bottomLeft()
            pos.setY(pos.y() - rect.height()/2)
        if include:
            pos.setX(pos.x() + 10)

        QTest.mouseMove(tree, pos)
        Testing.process_events(self.qapp, t=PROCESS_EVENT_TIME)
        QTest.mouseClick(viewport, Qt.LeftButton, delay=100, pos=pos)
        Testing.process_events(self.qapp, t=PROCESS_EVENT_TIME)
예제 #16
0
 def changeParamCombo(self, w, path, value_name, new_value, old_path=None):
     param_widget = self.getParamWidget(w, path, value_name, old_path)
     self.assertNotEqual(param_widget, None)
     pos = param_widget.valueTestPosition()
     widget = param_widget.valueTestWidget()
     QTest.mouseMove(widget, pos)
     Testing.process_events(self.qapp, t=PROCESS_EVENT_TIME)
     QTest.mouseClick(widget, Qt.LeftButton, pos=pos)
     # Now the selector should pop up which is a QListView
     list_views = Testing.findQObjectsByType(widget, "PyQt5.QtWidgets.QListView")
     self.assertEqual(len(list_views), 1)
     lv = list_views[0]
     model = lv.model()
     matches = model.findItems(new_value)
     self.assertEqual(len(matches), 1)
     model_idx = model.indexFromItem(matches[0])
     rect = lv.visualRect(model_idx)
     QTest.mouseMove(lv, pos=rect.center())
     Testing.process_events(self.qapp, t=PROCESS_EVENT_TIME)
     QTest.mouseClick(lv.viewport(), Qt.LeftButton, pos=rect.center(), delay=100)
     Testing.process_events(self.qapp, t=PROCESS_EVENT_TIME)
예제 #17
0
 def changeParamTypeCombo(self, w, path, new_type, old_path=None):
     node_widget = self.getNodeWidget(w, path, old_path)
     self.assertNotEqual(node_widget, None)
     type_combo = Testing.findQObjectsByName(node_widget, "type_combo")
     self.assertEqual(len(type_combo), 1)
     target = type_combo[0]
     QTest.mouseMove(target)
     QTest.mouseClick(target, Qt.LeftButton, delay=100)
     # Now the selector should pop up which is a QListView
     list_views = Testing.findQObjectsByType(target, "PyQt5.QtWidgets.QListView")
     self.assertEqual(len(list_views), 1)
     lv = list_views[0]
     model = lv.model()
     matches = model.findItems(new_type)
     self.assertEqual(len(matches), 1)
     model_idx = model.indexFromItem(matches[0])
     rect = lv.visualRect(model_idx)
     QTest.mouseMove(lv, pos=rect.center())
     Testing.process_events(self.qapp, t=PROCESS_EVENT_TIME)
     QTest.mouseClick(lv.viewport(), Qt.LeftButton, pos=rect.center(), delay=100)
     Testing.process_events(self.qapp, t=PROCESS_EVENT_TIME)
예제 #18
0
 def changeParamValueText(self, w, path, value_name, new_text, old_path=None):
     param_widget = self.getParamWidget(w, path, value_name, old_path)
     self.assertNotEqual(param_widget, None)
     pos = param_widget.valueTestPosition()
     widget = param_widget.valueTestWidget()
     QTest.mouseMove(widget, pos)
     Testing.process_events(self.qapp, t=PROCESS_EVENT_TIME)
     QTest.mouseClick(widget, Qt.LeftButton, pos=pos)
     QTest.mouseDClick(widget, Qt.LeftButton, pos=pos)
     # The default editing widget on a QTreeWidgetItem is a QLineEdit.
     # But it doesn't seem to show up until the item has focus.
     # This is pretty brittle but seems to work OK for now.
     line_edit = Testing.findQObjectsByType(widget, "PyQt5.QtWidgets.QLineEdit")
     for obj in line_edit:
         if obj.objectName() == "":
             widget = obj
             break
     Testing.process_events(self.qapp, t=PROCESS_EVENT_TIME)
     QTest.keyClick(widget, Qt.Key_Backspace)
     QTest.keyClicks(widget, new_text)
     QTest.keyClick(widget, Qt.Key_Return)
     Testing.process_events(self.qapp, t=PROCESS_EVENT_TIME)
예제 #19
0
 def drag_slider(self, slider):
     ''' Click *slider*, drag from one side to the other, release mouse
     button repeat to restore inital state'''
     position = self.get_slider_position(slider)
     QTest.mouseMove(slider, pos=position.topLeft())
     QTest.mousePress(slider, Qt.LeftButton)
     QTest.mouseMove(slider, pos=position.bottomRight())
     QTest.mouseRelease(slider, Qt.LeftButton)
     QTest.mousePress(slider, Qt.LeftButton)
     QTest.mouseMove(slider, pos=position.topLeft())
     QTest.mouseRelease(slider, Qt.LeftButton)
예제 #20
0
파일: test_gui.py 프로젝트: wuxyair/pyrocko
 def drag_slider(self, slider):
     ''' Click *slider*, drag from one side to the other, release mouse
     button repeat to restore inital state'''
     position = self.get_slider_position(slider)
     QTest.mouseMove(slider, pos=position.topLeft())
     QTest.mousePress(slider, Qt.LeftButton)
     QTest.mouseMove(slider, pos=position.bottomRight())
     QTest.mouseRelease(slider, Qt.LeftButton)
     QTest.mousePress(slider, Qt.LeftButton)
     QTest.mouseMove(slider, pos=position.topLeft())
     QTest.mouseRelease(slider, Qt.LeftButton)
예제 #21
0
 def hover_click(self, delay, widget):
     QTest.mouseMove(widget)
     QTest.qWait(int(gauss(delay, 3)))
     QTest.mouseClick(widget, Qt.LeftButton)
     QTest.qWait(int(gauss(delay, 3)))
예제 #22
0
 def clickButton(self, button_objs):
     self.assertEqual(len(button_objs), 1)
     QTest.mouseMove(button_objs[0])
     QTest.mouseClick(button_objs[0], Qt.LeftButton, delay=100)
     Testing.process_events(self.qapp, t=PROCESS_EVENT_TIME)
예제 #23
0
 def clickButton(self, button_objs):
     self.assertEqual(len(button_objs), 1)
     QTest.mouseMove(button_objs[0])
     QTest.mouseClick(button_objs[0], Qt.LeftButton, delay=100)
     Testing.process_events(self.qapp, t=PROCESS_EVENT_TIME)
예제 #24
0
 def test_enter_and_exit_events(self):
     # TODO: this is not causing what I want to happen, the style changes aren't happening.
     QTest.mouseMove(self.fig1.toolbar_custom_.btn_next_plot, delay=100)
     QTest.mouseMove(self.fig1.toolbar_custom_.btn_prev_plot, delay=100)
예제 #25
0
 def _click_card_helper(self, card):
     rects = dict(self._hand_panel.cards())
     point = (rects[card].topLeft() + QPointF(1, 1)).toPoint()
     QTest.mouseMove(self._hand_panel, point)
     QTest.mouseClick(self._hand_panel, Qt.LeftButton, Qt.NoModifier, point)
예제 #26
0
 def test_enter_and_exit_events(self):
     # TODO: this is not causing what I want to happen, the style changes aren't happening.
     QTest.mouseMove(self.fig1.toolbar_custom_.btn_next_plot, delay=100)
     QTest.mouseMove(self.fig1.toolbar_custom_.btn_prev_plot, delay=100)
예제 #27
0
파일: test_cards.py 프로젝트: jasujm/bridge
 def _click_card_helper(self, card):
     rects = dict(self._hand_panel.cards())
     point = (rects[card].topLeft() + QPointF(1, 1)).toPoint()
     QTest.mouseMove(self._hand_panel, point)
     QTest.mouseClick(self._hand_panel, Qt.LeftButton, Qt.NoModifier, point)