Beispiel #1
0
def test_that_removing_core_options_fails():
    options = ["a", "b", "c"]
    widget = controls.Submitter(options)

    widget.remove_options(["a"])

    assert widget.options == options
Beispiel #2
0
def test_that_a_button_group_is_created():
    options = ["a", "b", "c"]
    widget = controls.Submitter(options)
    assert isinstance(widget.control_elements, buttongroup.ButtonGroup)
    assert widget.options == widget.control_elements.options
    widget.options = ["a", "b", "c", "d"]
    assert widget.options == widget.control_elements.options
Beispiel #3
0
def test_that_disabling_other_option_works():
    options = ["a", "b", "c", "d", "e", "f"]
    widget = controls.Submitter(options, other_option=False)

    assert not any(
        isinstance(item, ipywidgets.Text)
        for item in widget.children[-1].children)
Beispiel #4
0
def test_that_a_button_dropdown_is_created():
    options = ["a", "b", "c", "d", "e", "f"]
    widget = controls.Submitter(options, max_buttons=3)
    assert isinstance(widget.control_elements, dropdownbutton.DropdownButton)
    assert widget.options == widget.control_elements.options
    widget.options = ["a", "b", "c", "d"]
    assert widget.options == widget.control_elements.options
Beispiel #5
0
def test_that_by_default_other_option_is_enabled():
    options = ["a", "b", "c", "d", "e", "f"]
    widget = controls.Submitter(options)

    assert any(
        isinstance(item, ipywidgets.Text)
        for item in widget.children[-1].children)
Beispiel #6
0
def test_that_sort_options_sorts_options(mocker):
    options = ["d", "a", "b", "c"]
    widget = controls.Submitter(options)
    mock_compose = mocker.patch.object(widget, "_compose")
    widget._sort_options()

    assert widget.options == ["a", "b", "c", "d"]
    assert mock_compose.called_once()
Beispiel #7
0
def test_on_skip_args_get_called(mocker):
    widget = controls.Submitter(["a", "b"])
    mock_skip = mocker.MagicMock()
    widget.on_skip(mock_skip)
    widget._skip("dummy")

    mock_skip.assert_called_once()
    assert mock_skip.call_args[0] == tuple()
Beispiel #8
0
def test_on_undo_args_get_called(mocker):
    widget = controls.Submitter(["a", "b"])
    mock_undo = mocker.MagicMock()
    widget.on_undo(mock_undo)
    widget._undo("dummy")

    mock_undo.assert_called_once()
    assert mock_undo.call_args[0] == tuple()
Beispiel #9
0
def test_that_submitting_a_new_option_adds_it(mocker):
    widget = controls.Submitter(["a", "b"])
    mock_function = mocker.Mock()
    widget.on_submission(mock_function)

    widget.other_widget.value = "dummy submission"
    widget._when_submitted(widget.other_widget)

    assert "dummy submission" in widget.options
Beispiel #10
0
def test_that_removing_added_options_works():
    options = ["a", "b", "c"]
    widget = controls.Submitter(options)

    widget.options += ["d"]
    assert widget.options == options + ["d"]

    widget.remove_options(["d"])
    assert widget.options == options
Beispiel #11
0
def test_that_on_key_down_calls_when_submitted_correctly(mocker):
    widget = controls.Submitter(["a", "b"])
    mock_handler = mocker.patch.object(widget, "_when_submitted")
    widget._on_key_down(DUMMY_KEYUP_DICT_ONE)

    assert mock_handler.call_args == (({
        "value": "a",
        "source": "keystroke"
    }, ), )
Beispiel #12
0
def test_that_when_submitted_passes_correct_values_from_undo(mocker):
    widget = controls.Submitter(["a", "b"])
    mock_function = mocker.Mock()
    widget.on_submission(mock_function)
    widget._when_submitted(widget.undo_button)
    assert mock_function.call_args == (({
        "source": "__undo__",
        "value": None
    }, ), )
Beispiel #13
0
def test_that_when_submitted_passes_correct_values_from_button(mocker):
    widget = controls.Submitter(["a", "b"])
    mock_function = mocker.Mock()
    widget.on_submission(mock_function)
    widget._when_submitted(widget.control_elements.buttons["a"])
    assert mock_function.call_args == (({
        "source": "button",
        "value": "a"
    }, ), )
Beispiel #14
0
def test_that_submit_passes_correct_values(mocker):
    widget = controls.Submitter(["a", "b"])
    mock_function = mocker.Mock()
    widget.on_submit(mock_function)

    widget.other_widget.value = "dummy submission"
    widget._submit(widget.other_widget)
    assert mock_function.call_args[0] == ("dummy submission", )

    widget._submit(list(widget.control_elements.buttons.values())[0])
    assert mock_function.call_args[0] == ("a", )
Beispiel #15
0
def test_that_passing_hints_calls_hint_function(mocker):
    options = ["a", "b", "c", "d", "e", "f"]

    mock_hint_function = mocker.Mock()

    widget = controls.Submitter(  # noqa
        options,
        hint_function=mock_hint_function,
        hints={"a": "test hint"})

    assert mock_hint_function.call_count == 1
    assert mock_hint_function.call_args == (("test hint", ), )
Beispiel #16
0
def test_that_when_submitted_passes_correct_values_from_keystroke(mocker):
    widget = controls.Submitter(["a", "b"])
    mock_function = mocker.Mock()
    widget.on_submission(mock_function)

    widget.other_widget.value = "dummy submission"
    widget._when_submitted({"source": "keystroke", "value": "dummy"})

    assert mock_function.call_args == (({
        "source": "keystroke",
        "value": "dummy"
    }, ), )
Beispiel #17
0
def test_that_add_hint_calls_hint_function(mocker):
    options = ["a", "b", "c", "d", "e", "f"]

    mock_hint_function = mocker.Mock()

    widget = controls.Submitter(options, hint_function=mock_hint_function)

    assert widget.hint_function is mock_hint_function
    assert mock_hint_function.call_count == 0

    widget.add_hint("a", "test hint")
    assert mock_hint_function.call_count == 1
    assert mock_hint_function.call_args == (("test hint", ), )
Beispiel #18
0
def test_that_by_default_other_option_is_enabled():
    options = ["a", "b", "c", "d", "e", "f"]
    widget = controls.Submitter(options)

    assert isinstance(widget.other_widget, ipywidgets.Text)
Beispiel #19
0
def test_that_on_submission_fails_when_not_given_callable():
    widget = controls.Submitter()
    with pytest.raises(ValueError):
        widget.on_submission("dummy")
Beispiel #20
0
def test_that_on_submission_updates_submissions_functions():
    widget = controls.Submitter()
    widget.on_submission(print)
    assert widget.submission_functions == [print]
Beispiel #21
0
def test_that_updating_options_triggers_compose(mocker):
    options = ["a", "b", "c"]
    widget = controls.Submitter()
    mock_compose = mocker.patch.object(widget, "_compose")
    widget.options = options
    assert mock_compose.called_once()
Beispiel #22
0
def test_that_options_are_converted_to_strings(options):
    widget = controls.Submitter(options=options)
    assert widget.options == [str(option) for option in options]
Beispiel #23
0
def test_that_options_are_set_correctly_when_updated(options):
    widget = controls.Submitter()
    assert widget.options == []

    widget.options = options
    assert widget.options == options
Beispiel #24
0
def test_that_options_are_set_correctly_when_instantiated(options):
    widget = controls.Submitter(options=options)
    assert widget.options == options