def test_mouse_click(self): button = QtGui.QPushButton() click_slot = mock.Mock() button.clicked.connect(click_slot) _interaction_helpers.mouse_click_qwidget(button, 0) self.assertEqual(click_slot.call_count, 1)
def test_mouse_click_disabled(self): button = QtGui.QPushButton() button.setEnabled(False) click_slot = mock.Mock() button.clicked.connect(click_slot) # when # clicking won't fail, it just does not do anything. # This is consistent with the actual UI. _interaction_helpers.mouse_click_qwidget(button, 0) # then self.assertEqual(click_slot.call_count, 0)
def register(registry): """ Register solvers/handlers specific to qt Boolean Editors for the given registry. If there are any conflicts, an error will occur. Parameters ---------- registry : TargetRegistry """ registry.register_interaction( target_class=SimpleEditor, interaction_class=MouseClick, handler=lambda wrapper, _: _interaction_helpers.mouse_click_qwidget( control=wrapper._target.control, delay=wrapper.delay)) registry.register_interaction( target_class=SimpleEditor, interaction_class=IsChecked, handler=lambda wrapper, _: wrapper._target.control.isChecked()) registry.register_interaction( target_class=ReadonlyEditor, interaction_class=DisplayedText, handler=lambda wrapper, _: _interaction_helpers.displayed_text_qobject( widget=wrapper._target.control))
def register(registry): """Register solvers/handlers specific to qt Button Editors for the given registry. If there are any conflicts, an error will occur. Parameters ---------- registry : TargetRegistry """ handlers = [ ( MouseClick, lambda wrapper, _: _interaction_helpers.mouse_click_qwidget( wrapper._target.control, wrapper.delay), ), (DisplayedText, lambda wrapper, _: wrapper._target.control.text()), ] for target_class in [SimpleEditor, CustomEditor]: for interaction_class, handler in handlers: registry.register_interaction( target_class=target_class, interaction_class=interaction_class, handler=handler, )
def register(registry): """ Register interactions for the given registry. If there are any conflicts, an error will occur. Parameters ---------- registry : TargetRegistry The registry being registered to. """ _IndexedCustomEditor.register(registry) registry.register_interaction( target_class=SimpleEditor, interaction_class=MouseClick, handler=lambda wrapper, _: (mouse_click_qwidget(wrapper._target._button, delay=wrapper.delay))) register_traitsui_ui_solvers(registry, SimpleEditor, _get_nested_ui_simple) registry.register_interaction( target_class=CustomEditor, interaction_class=SelectedText, handler=_get_combobox_text, ) register_traitsui_ui_solvers(registry, CustomEditor, _get_nested_ui_custom)
def register_editable_textbox_handlers(registry, target_class, widget_getter): """ Register common interactions for an editable textbox (in Qt) Parameters ---------- registry : TargetRegistry The registry being registered to. target_class : subclass of type The type of target being wrapped in a UIWrapper on which the interaction will be performed. widget_getter : callable(wrapper: UIWrapper) -> QWidget A callable to return a Qt widget for editing text, i.e. QLineEdit or QTextEdit. """ handlers = [ (KeySequence, (lambda wrapper, interaction: _interaction_helpers. key_sequence_textbox(widget_getter(wrapper), interaction, wrapper.delay))), (KeyClick, (lambda wrapper, interaction: _interaction_helpers.key_click_qwidget( widget_getter(wrapper), interaction, wrapper.delay))), (MouseClick, (lambda wrapper, _: _interaction_helpers.mouse_click_qwidget( widget_getter(wrapper), wrapper.delay))), (DisplayedText, lambda wrapper, _: _interaction_helpers. displayed_text_qobject(widget_getter(wrapper))), ] for interaction_class, handler in handlers: registry.register_interaction( target_class=target_class, interaction_class=interaction_class, handler=handler, )