def mouse_click(widget, pos, button=Qt.LeftButton): QTest.mouseMove(widget, pos) yield QTest.mousePress(widget, button, Qt.NoModifier, pos) yield QTest.mouseRelease(widget, button, Qt.NoModifier, pos) yield 0.1
def drag_mouse(widget, from_pos, to_pos): QTest.mousePress(widget, Qt.LeftButton, Qt.NoModifier, from_pos) yield QTest.mouseMove(widget, from_pos) yield 0.1 QTest.mouseMove(widget, to_pos) yield 0.1 QTest.mouseRelease(widget, Qt.LeftButton, Qt.NoModifier, to_pos) yield 0.1
def mouse_trigger_action(self, name, pause=0): menu = self.get_active_popup_widget() a, m = self.get_action(name, get_menu=True) pos = menu.actionGeometry(a).center() QTest.mouseMove(menu, pos) yield pause self.hover_action(name) QTest.mousePress(menu, Qt.LeftButton, Qt.NoModifier, pos) yield pause QTest.mouseRelease(menu, Qt.LeftButton, Qt.NoModifier, pos)
def userClickDrag(test, distance, delegate): """ Tests a user click/drag operation. When the delegate opens, a user can click + drag on a value to determine how much to update the parent widget. """ from decimal import Decimal, getcontext item_list = delegate.item_list for item in item_list: if isinstance(item, LadderItem): # pen down QTest.mousePress(item, Qt.LeftButton) # pen move num_ticks = 0 for x in range(0, distance): pos = QPoint(QCursor().pos().x() + x, QCursor().pos().y() + x) move_event = QMouseEvent( QEvent.MouseMove, pos, Qt.LeftButton, Qt.LeftButton, Qt.KeyboardModifiers() ) item.mouseMoveEvent(move_event) # do math for test magnitude = LadderItem._LadderItem__getMagnitude(item, QCursor().pos(), pos) if num_ticks != int(magnitude): # set significant digits sig_digits = item.parent()._significant_digits int_len = len(item.parent().middle_item.text().split('.')[0]) getcontext().prec = sig_digits + int_len value_mult = item.value_mult * num_ticks # get values return_val = Decimal(value_mult) + item.orig_value current_val = item.parent().middle_item.getValue() # update num ticks num_ticks = int(magnitude) # test values try: test.assertEqual(float(return_val), float(current_val)) except UnboundLocalError: # pass on the first run since the values are not set yet pass except AssertionError: pass """ print(""" # return val == {return_val} # current_val == {current_val} # # float(return val) == {freturn_val} # float(current_val) == {fcurrent_val} # # """.format( # return_val=return_val, # current_val=current_val, # freturn_val=float(return_val), # fcurrent_val=float(current_val), # ) # ) # """ # pen up QTest.mouseRelease(item, Qt.LeftButton)