Ejemplo n.º 1
0
def test_delete_motion(mock, sequence, count, errmsg):
    setMode(Mode.normal)
    result = handleSequence(sequence)
    # Left as plus to make it easier to move the count.
    expected = count * ([Operator.visualStart] + [Motion.goWordNext] + \
        [Operator.visualPause]) + [Operator.delete]
    assert result == expected, errmsg + " ({})".format(sequence)
Ejemplo n.º 2
0
def test_basic_nmap(caplog):
    caplog.set_level(logging.DEBUG)
    setMode(Mode.normal)
    expected = Motion.right.value
    assert handleInput("l") == expected
    nmap("x", "l")
    assert handleInput("x") == expected, "basic nmap doesn't work"
Ejemplo n.º 3
0
def test_multichar_nmap(caplog):
    caplog.set_level(logging.DEBUG)
    setMode(Mode.normal)
    expected = Motion.right.value * 2
    assert handleInput("ll") == expected
    nmap("x", "ll")
    assert handleInput("x") == expected, "multichar nmap doesn't work"
Ejemplo n.º 4
0
def test_double_operator(mock, key, operator):
    setMode(Mode.normal)
    result = handleSequence(key * 2)
    expected = [
        Motion.goLineStart, Operator.visualStart, Motion.goLineEnd,
        Operator.visualPause
    ] + [operator]
    assert result == expected, "double {} fails".format(key)
Ejemplo n.º 5
0
def test_imap_to_esc_one_at_a_time(caplog):
    caplog.set_level(logging.DEBUG)
    setMode(Mode.insert)
    expected = "<bs>"
    imap("jk", "<esc>")
    handleInput("j")
    assert handleInput("k") == expected, "one key at a time doesn't trigger map"
    assert isMode(Mode.normal)
    imap("jk")
Ejemplo n.º 6
0
def test_imap(caplog, maps, test, expected, error_msg):
    caplog.set_level(logging.DEBUG)
    setMode(Mode.insert)
    for m in maps:
        imap(m, maps[m])
    assert translate_keys(test) == expected, error_msg
    # Remove imaps again
    for m in maps:
        imap(m)
Ejemplo n.º 7
0
def test_set_current_maps_for_mode(mode):
    remap.maps = {
        Mode.insert: {'ins': 'ert'},
        Mode.normal: {'nor': 'mal'},
        Mode.visual: {'vis': 'ual'},
        Mode.command: {'com': 'mand'},
    }
    setMode(mode)
    remap.set_current_maps_for_mode()
    assert remap.current_maps == remap.maps[mode]
Ejemplo n.º 8
0
def test_map_with_joinchar(caplog, maps, test, expected, error_msg):
    caplog.set_level(logging.DEBUG)
    univisal.adapter_maps.adapter_maps = {Keys.multikey_join_char.value: "+"}
    assert univisal.adapter_maps.getJoinChar() != ""
    setMode(Mode.insert)
    for m in maps:
        imap(m, maps[m])
    assert translate_keys(test) == expected, error_msg
    # Remove imaps again
    for m in maps:
        imap(m)
Ejemplo n.º 9
0
def test_basic_motion_with_count(count):
    motion = 'l'
    motionVal = Motion.right.value
    inpt = str(count) + motion
    expected = motionVal * count
    setMode(Mode.normal)
    result = translate_keys(inpt)
    print("number of repeats in result: {}".format(result.count(motionVal)))
    print("current repeat count: {}".format(univisal.model.getRepeatCount()))
    assert result == expected, "motion with count {} returns wrong thing".format(
        count)
Ejemplo n.º 10
0
def test_swallow_unused_normal(opt, expected, msg):
    from tests.mock_setup import init_univisal
    from univisal.handleInput import handleInput
    from univisal.handleKey import handleVimInputKey

    init_univisal()
    config.configStore = {"swallow_unused_normal_keys": opt}
    setMode(Mode.normal)
    # Test handling the single key, then the whole input to confirm.
    result = handleVimInputKey("m")
    assert result == expected, msg + " after handleSingleInputKey"
    result = handleInput("m")
    assert result == expected, msg + " after handleInput"
Ejemplo n.º 11
0
def test_mode_change_clears_maps_in_progress(caplog):
    caplog.set_level(logging.DEBUG)
    iLhs="savag"
    iRhs="role"
    imap(iLhs, iRhs)
    nmap("g", "l")
    setMode(Mode.insert)
    # maps_in_progress should be iLhs minus end char (sava)
    insertExpected = (iLhs[:-1])
    assert translate_keys(insertExpected) == insertExpected
    assert not maps_in_progress_is_blank()
    setMode(Mode.normal)
    # Need to send one more key to trigger the map check.
    translate_keys("l")
    assert maps_in_progress_is_blank()
Ejemplo n.º 12
0
def test_mode_change_not_affects_remaps(caplog):
    caplog.set_level(logging.DEBUG)
    iLhs="savag"
    iRhs="role"
    imap(iLhs, iRhs)
    nmap("g", "l")
    setMode(Mode.insert)
    # maps_in_progress should be iLhs minus end char (sava)
    insertExpected = (iLhs[:-1])
    assert translate_keys(insertExpected) == insertExpected
    assert not maps_in_progress_is_blank()
    setMode(Mode.normal)
    assert translate_keys("g") == Motion.right.value
    setMode(Mode.insert)
    assert translate_keys("g") == "g"
    assert translate_keys(iLhs) == iRhs
Ejemplo n.º 13
0
def test_handleInput_while_disabled():
    test = "input key"
    errMsg = "HandleInput doesn't return input when univisal disabled"
    setMode(Mode.disabled)
    assert handleInput.handleInput(test) == test, errMsg
Ejemplo n.º 14
0
def test_getMode(mode, expected):
    setMode(mode)
    error_msg = "getMode doesn't return mode in {} mode".format(expected)
Ejemplo n.º 15
0
def test_basic_motions(motion, expected):
    setMode(Mode.normal)
    result = handleInput(motion)
    assert result == expected.value, "{} returns wrong thing".format(motion)
Ejemplo n.º 16
0
def test_setMode_normal_clears_pending():
    model._pending_motion = "l"
    setMode(Mode.normal)
    assert model._pending_motion is None
Ejemplo n.º 17
0
def test_escape():
    setMode(Mode.insert)
    assert getMode() == Mode.insert
    result = handleInput(Keys.esc.value)
    assert getMode() == Mode.normal
    assert result == Keys.nop.value
Ejemplo n.º 18
0
def test_setMode_nonnormal_not_clears_pending(mode):
    pending = "l"
    model._pending_motion = pending
    setMode(mode)
    assert model._pending_motion == pending
Ejemplo n.º 19
0
def test_imap_esc_followup(caplog):
    imap("jk", Keys.esc.value)
    setMode(Mode.insert)
    result = translate_keys("jkl")
    assert getMode() == Mode.normal
    assert result == Motion.right.value
Ejemplo n.º 20
0
def test_updateCurrentMode(mode):
    setMode(mode)
    remap.updateCurrentMode()
    assert remap.current_mode == mode
Ejemplo n.º 21
0
def test_setMode(mode):
    setMode(mode)
    assert getMode() == mode