Hopefully fix some weirdness on tab completeion where it would read the entire screen instead of suggested tab completions.
This commit is contained in:
@@ -140,6 +140,93 @@ def test_candidate_list_speaks_visible_list_without_cursor_advance():
|
||||
assert manager.process_update() == "Documents/ Downloads/"
|
||||
|
||||
|
||||
@pytest.mark.unit
|
||||
def test_full_screen_scroll_speaks_only_inserted_candidate_list():
|
||||
old_text = "\n".join(
|
||||
[
|
||||
"old top".ljust(30),
|
||||
"old middle".ljust(30),
|
||||
"old lower".ljust(30),
|
||||
"old bottom".ljust(30),
|
||||
"$ ./Toby".ljust(30),
|
||||
]
|
||||
)
|
||||
manager, env, _input_manager = _build_env(old_text, {"x": 8, "y": 4})
|
||||
|
||||
manager.capture_if_tab()
|
||||
_set_screen_update(
|
||||
env,
|
||||
"\n".join(
|
||||
[
|
||||
"old middle".ljust(30),
|
||||
"old lower".ljust(30),
|
||||
"old bottom".ljust(30),
|
||||
"TobyAccMod_V10-0.pk3 TobyConfig.ini".ljust(30),
|
||||
"$ ./Toby".ljust(30),
|
||||
]
|
||||
),
|
||||
{"x": 8, "y": 4},
|
||||
delta="\n".join(
|
||||
[
|
||||
"old middle",
|
||||
"old lower",
|
||||
"old bottom",
|
||||
"TobyAccMod_V10-0.pk3 TobyConfig.ini",
|
||||
"$ ./Toby",
|
||||
]
|
||||
),
|
||||
)
|
||||
|
||||
assert manager.process_update() == "TobyAccMod_V10-0.pk3 TobyConfig.ini"
|
||||
|
||||
|
||||
@pytest.mark.unit
|
||||
def test_same_height_repaint_without_inserted_candidates_stays_silent():
|
||||
old_text = "\n".join(
|
||||
[
|
||||
"old top".ljust(30),
|
||||
"old middle".ljust(30),
|
||||
"old lower".ljust(30),
|
||||
"$ ./Toby".ljust(30),
|
||||
]
|
||||
)
|
||||
manager, env, _input_manager = _build_env(old_text, {"x": 8, "y": 3})
|
||||
|
||||
manager.capture_if_tab()
|
||||
_set_screen_update(
|
||||
env,
|
||||
"\n".join(
|
||||
[
|
||||
"status line".ljust(30),
|
||||
"old prompt history".ljust(30),
|
||||
"unrelated output".ljust(30),
|
||||
"$ ./Toby".ljust(30),
|
||||
]
|
||||
),
|
||||
{"x": 8, "y": 3},
|
||||
delta="status line\nold prompt history\nunrelated output\n$ ./Toby",
|
||||
)
|
||||
|
||||
assert manager.process_update() == ""
|
||||
|
||||
|
||||
@pytest.mark.unit
|
||||
def test_recent_tab_does_not_speak_delta_without_detected_completion():
|
||||
old_text = "\n".join(["$ ./Toby".ljust(20), "".ljust(20)])
|
||||
manager, env, _input_manager = _build_env(old_text, {"x": 8, "y": 0})
|
||||
|
||||
manager.capture_if_tab()
|
||||
_set_screen_update(
|
||||
env,
|
||||
old_text,
|
||||
{"x": 8, "y": 0},
|
||||
delta="old unrelated screen content\n$ ./Toby",
|
||||
)
|
||||
|
||||
assert manager.process_update() == ""
|
||||
assert env["commandBuffer"]["tabCompletion"]["pending"] is not None
|
||||
|
||||
|
||||
@pytest.mark.unit
|
||||
def test_no_screen_change_stays_silent_and_keeps_pending_briefly():
|
||||
manager, env, _input_manager = _build_env(
|
||||
|
||||
Reference in New Issue
Block a user