Exemple #1
0
    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)
Exemple #2
0
    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)
Exemple #3
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))
Exemple #4
0
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,
            )
Exemple #5
0
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,
        )