Clean up test_completer further.
Based on code review: - Use qtbot.waitSignal to test a signal firing - Use pytest.mark.xfail for an expected test failure - Ensure there are 2 newlines between module-level functions
This commit is contained in:
parent
68e373df44
commit
a6a8bf9304
@ -130,7 +130,8 @@ def cmdutils_patch(monkeypatch, stubs):
|
|||||||
(':--foo --bar |', None),
|
(':--foo --bar |', None),
|
||||||
(':tab-detach |', None),
|
(':tab-detach |', None),
|
||||||
(':bind --mode=caret <c-x> |', usertypes.Completion.command),
|
(':bind --mode=caret <c-x> |', usertypes.Completion.command),
|
||||||
#(':bind --mode caret <c-x> |', usertypes.Completion.command), KNOWN BUG
|
pytest.mark.xfail(reason='issue #74')((':bind --mode caret <c-x> |',
|
||||||
|
usertypes.Completion.command)),
|
||||||
(':set -t -p |', usertypes.Completion.section),
|
(':set -t -p |', usertypes.Completion.section),
|
||||||
(':open -- |', None),
|
(':open -- |', None),
|
||||||
])
|
])
|
||||||
@ -150,23 +151,24 @@ def test_update_completion(txt, expected, cmd, completer_obj,
|
|||||||
# the outer model is just for sorting; srcmodel is the completion model
|
# the outer model is just for sorting; srcmodel is the completion model
|
||||||
assert arg.srcmodel.kind == expected
|
assert arg.srcmodel.kind == expected
|
||||||
|
|
||||||
|
|
||||||
def test_completion_item_prev(completer_obj, cmd, completion_widget_stub,
|
def test_completion_item_prev(completer_obj, cmd, completion_widget_stub,
|
||||||
config_stub):
|
config_stub, qtbot):
|
||||||
"""Test that completion_item_prev emits next_prev_item."""
|
"""Test that completion_item_prev emits next_prev_item."""
|
||||||
cmd.setText(':')
|
cmd.setText(':')
|
||||||
slot = unittest.mock.Mock()
|
with qtbot.waitSignal(completer_obj.next_prev_item) as blocker:
|
||||||
completer_obj.next_prev_item.connect(slot)
|
completer_obj.completion_item_prev()
|
||||||
completer_obj.completion_item_prev()
|
assert blocker.args == [True]
|
||||||
slot.assert_called_with(True)
|
|
||||||
|
|
||||||
def test_completion_item_next(completer_obj, cmd, completion_widget_stub,
|
def test_completion_item_next(completer_obj, cmd, completion_widget_stub,
|
||||||
config_stub):
|
config_stub, qtbot):
|
||||||
"""Test that completion_item_next emits next_prev_item."""
|
"""Test that completion_item_next emits next_prev_item."""
|
||||||
cmd.setText(':')
|
cmd.setText(':')
|
||||||
slot = unittest.mock.Mock()
|
with qtbot.waitSignal(completer_obj.next_prev_item) as blocker:
|
||||||
completer_obj.next_prev_item.connect(slot)
|
completer_obj.completion_item_next()
|
||||||
completer_obj.completion_item_next()
|
assert blocker.args == [False]
|
||||||
slot.assert_called_with(False)
|
|
||||||
|
|
||||||
@pytest.mark.parametrize('before, newtxt, immediate, after', [
|
@pytest.mark.parametrize('before, newtxt, immediate, after', [
|
||||||
(':foo |', 'bar', False, ':foo bar|'),
|
(':foo |', 'bar', False, ':foo bar|'),
|
||||||
|
Loading…
Reference in New Issue
Block a user