Skip to content

Commit

Permalink
tests: boxes: Update tests for handling Esc during message compose.
Browse files Browse the repository at this point in the history
  • Loading branch information
rsashank committed Dec 19, 2023
1 parent 3e9d857 commit d5ffc5a
Showing 1 changed file with 48 additions and 0 deletions.
48 changes: 48 additions & 0 deletions tests/ui_tools/test_boxes.py
Original file line number Diff line number Diff line change
Expand Up @@ -235,15 +235,39 @@ def test__compose_attributes_reset_for_private_compose(
mocker.patch("urwid.connect_signal")
write_box.model.user_id_email_dict = user_id_email_dict
write_box.private_box_view(recipient_user_ids=[11])

# Testing input less than 15 characters; >15 prompts confirmation popup
write_box.msg_write_box.edit_text = "random text"

size = widget_size(write_box)
write_box.keypress(size, key)

write_box.view.controller.exit_compose_confirmation_popup.assert_not_called()
assert write_box.to_write_box is None
assert write_box.msg_write_box.edit_text == ""
assert write_box.compose_box_status == "closed"

@pytest.mark.parametrize("key", keys_for_command("GO_BACK"))
def test__compose_attributes_reset_for_private_compose_popup(
self,
key: str,
mocker: MockerFixture,
write_box: WriteBox,
widget_size: Callable[[Widget], urwid_Size],
user_id_email_dict: Dict[int, str],
) -> None:
mocker.patch("urwid.connect_signal")
write_box.model.user_id_email_dict = user_id_email_dict
write_box.private_box_view(recipient_user_ids=[11])

# Testing input more than 15 characters; >15 prompts confirmation popup
write_box.msg_write_box.edit_text = "random text (>15 characters)"

size = widget_size(write_box)
write_box.keypress(size, key)

write_box.view.controller.exit_compose_confirmation_popup.assert_called_once()

@pytest.mark.parametrize("key", keys_for_command("GO_BACK"))
def test__compose_attributes_reset_for_stream_compose(
self,
Expand All @@ -254,15 +278,37 @@ def test__compose_attributes_reset_for_stream_compose(
) -> None:
mocker.patch(WRITEBOX + "._set_stream_write_box_style")
write_box.stream_box_view(stream_id=1)

# Testing input less than 15 characters; >15 prompts confirmation popup
write_box.msg_write_box.edit_text = "random text"

size = widget_size(write_box)
write_box.keypress(size, key)

write_box.view.controller.exit_compose_confirmation_popup.assert_not_called()
assert write_box.stream_id is None
assert write_box.msg_write_box.edit_text == ""
assert write_box.compose_box_status == "closed"

@pytest.mark.parametrize("key", keys_for_command("GO_BACK"))
def test__compose_attributes_reset_for_stream_compose_popup(
self,
key: str,
mocker: MockerFixture,
write_box: WriteBox,
widget_size: Callable[[Widget], urwid_Size],
) -> None:
mocker.patch(WRITEBOX + "._set_stream_write_box_style")
write_box.stream_box_view(stream_id=1)

# Testing input more than 15 characters; >15 prompts confirmation popup
write_box.msg_write_box.edit_text = "random text (>15 characters)"

size = widget_size(write_box)
write_box.keypress(size, key)

write_box.view.controller.exit_compose_confirmation_popup.assert_called_once_with()

@pytest.mark.parametrize(
["raw_recipients", "tidied_recipients"],
[
Expand Down Expand Up @@ -1508,13 +1554,15 @@ def test_keypress_SEND_MESSAGE_no_topic(
)
def test_keypress_typeahead_mode_autocomplete_key(
self,
mocker: MockerFixture,
write_box: WriteBox,
widget_size: Callable[[Widget], urwid_Size],
current_typeahead_mode: bool,
expected_typeahead_mode: bool,
expect_footer_was_reset: bool,
key: str,
) -> None:
write_box.msg_write_box = mocker.Mock(edit_text="")
write_box.is_in_typeahead_mode = current_typeahead_mode
size = widget_size(write_box)

Expand Down

0 comments on commit d5ffc5a

Please sign in to comment.