Skip to content

Commit 59f2935

Browse files
rsashankneiljp
authored andcommitted
refactor: tests: boxes: Split typeahead mode keypress test.
The typeahead mode keypress test has been divided into two separate tests: one where the footer is reset and another where the footer is not reset. This makes the test clearer and eliminates the need for a conditional.
1 parent 11f8d9f commit 59f2935

File tree

1 file changed

+35
-17
lines changed

1 file changed

+35
-17
lines changed

tests/ui_tools/test_boxes.py

+35-17
Original file line numberDiff line numberDiff line change
@@ -1559,27 +1559,21 @@ def test_keypress_SEND_MESSAGE_no_topic(
15591559
)
15601560

15611561
@pytest.mark.parametrize(
1562-
"key, current_typeahead_mode, expected_typeahead_mode, expect_footer_was_reset",
1562+
"key, current_typeahead_mode, expected_typeahead_mode",
15631563
[
1564-
# footer does not reset
1565-
(primary_key_for_command("AUTOCOMPLETE"), False, False, False),
1566-
(primary_key_for_command("AUTOCOMPLETE_REVERSE"), False, False, False),
1567-
(primary_key_for_command("AUTOCOMPLETE"), True, True, False),
1568-
(primary_key_for_command("AUTOCOMPLETE_REVERSE"), True, True, False),
1569-
# footer resets
1570-
(primary_key_for_command("EXIT_COMPOSE"), True, False, True),
1571-
("space", True, False, True),
1572-
("k", True, False, True),
1564+
(primary_key_for_command("AUTOCOMPLETE"), False, False),
1565+
(primary_key_for_command("AUTOCOMPLETE_REVERSE"), False, False),
1566+
(primary_key_for_command("AUTOCOMPLETE"), True, True),
1567+
(primary_key_for_command("AUTOCOMPLETE_REVERSE"), True, True),
15731568
],
15741569
)
1575-
def test_keypress_typeahead_mode_autocomplete_key(
1570+
def test__keypress_typeahead_mode_autocomplete_key_footer_no_reset(
15761571
self,
15771572
mocker: MockerFixture,
15781573
write_box: WriteBox,
15791574
widget_size: Callable[[Widget], urwid_Size],
15801575
current_typeahead_mode: bool,
15811576
expected_typeahead_mode: bool,
1582-
expect_footer_was_reset: bool,
15831577
key: str,
15841578
) -> None:
15851579
write_box.msg_write_box = mocker.Mock(edit_text="")
@@ -1589,11 +1583,35 @@ def test_keypress_typeahead_mode_autocomplete_key(
15891583
write_box.keypress(size, key)
15901584

15911585
assert write_box.is_in_typeahead_mode == expected_typeahead_mode
1592-
if expect_footer_was_reset:
1593-
# We may prefer called-once in future, but the key part is that we do reset
1594-
assert self.view.set_footer_text.called
1595-
else:
1596-
assert not self.view.set_footer_text.called
1586+
assert not self.view.set_footer_text.called
1587+
1588+
@pytest.mark.parametrize(
1589+
"key, current_typeahead_mode, expected_typeahead_mode",
1590+
[
1591+
(primary_key_for_command("EXIT_COMPOSE"), True, False),
1592+
("space", True, False),
1593+
("k", True, False),
1594+
],
1595+
)
1596+
def test__keypress_typeahead_mode_autocomplete_key_footer_reset(
1597+
self,
1598+
mocker: MockerFixture,
1599+
write_box: WriteBox,
1600+
widget_size: Callable[[Widget], urwid_Size],
1601+
current_typeahead_mode: bool,
1602+
expected_typeahead_mode: bool,
1603+
key: str,
1604+
) -> None:
1605+
write_box.msg_write_box = mocker.Mock(edit_text="")
1606+
write_box.is_in_typeahead_mode = current_typeahead_mode
1607+
size = widget_size(write_box)
1608+
1609+
write_box.keypress(size, key)
1610+
1611+
assert write_box.is_in_typeahead_mode == expected_typeahead_mode
1612+
1613+
# We may prefer called-once in future, but the key part is that we do reset
1614+
assert self.view.set_footer_text.called
15971615

15981616
@pytest.mark.parametrize(
15991617
[

0 commit comments

Comments
 (0)