示例#1
0
    def test_keypress_OPEN_DRAFT(
        self,
        view: View,
        mocker: MockerFixture,
        draft: Composition,
        key: str,
        autohide: bool,
        widget_size: Callable[[Widget], urwid_Box],
    ) -> None:
        view.body = mocker.Mock()
        view.body.contents = ["streams", "messages", "users"]
        view.left_panel = mocker.Mock()
        view.middle_column = mocker.Mock()
        view.right_panel = mocker.Mock()
        view.controller.autohide = autohide
        view.controller.report_error = mocker.Mock()
        view.controller.is_in_editor_mode = lambda: False
        view.model.stream_id_from_name.return_value = 10
        view.model.session_draft_message.return_value = draft
        view.model.user_id_email_dict = {
            1: "*****@*****.**",
            2: "*****@*****.**"
        }
        mocked_stream_box_view = mocker.patch.object(view.write_box,
                                                     "stream_box_view")
        mocked_private_box_view = mocker.patch.object(view.write_box,
                                                      "private_box_view")

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

        if draft:
            if draft["type"] == "stream":
                mocked_stream_box_view.assert_called_once_with(
                    caption=draft["to"], title=draft["subject"], stream_id=10)
            else:
                mocked_private_box_view.assert_called_once_with(
                    recipient_user_ids=draft["to"], )

            assert view.body.focus_col == 1
            assert view.write_box.msg_write_box.edit_text == draft["content"]
            assert view.write_box.msg_write_box.edit_pos == len(
                draft["content"])
            view.middle_column.set_focus.assert_called_once_with("footer")
        else:
            view.controller.report_error.assert_called_once_with(
                "No draft message was saved in this session.")
示例#2
0
    def test_keypress_autohide_streams(
        self,
        view: View,
        mocker: MockerFixture,
        autohide: bool,
        key: str,
        widget_size: Callable[[Widget], urwid_Box],
    ) -> None:
        view.left_col_w = mocker.Mock()
        view.controller.autohide = autohide
        view.body = mocker.Mock()
        view.body.contents = [mocker.Mock(), "messages", "users"]
        view.left_panel = mocker.Mock()
        view.right_panel = mocker.Mock()
        size = widget_size(view)
        view.controller.is_in_editor_mode = lambda: False
        view.body.focus_position = None

        view.keypress(size, key)

        view.left_panel.keypress.assert_called_once_with(size, key)
        assert view.body.focus_position == 0
示例#3
0
    def test_keypress_STREAM_MESSAGE(
        self,
        view: View,
        mocker: MockerFixture,
        key: str,
        autohide: bool,
        widget_size: Callable[[Widget], urwid_Box],
    ) -> None:
        mocked_middle_column = mocker.patch.object(view,
                                                   "middle_column",
                                                   create=True)
        view.body = mocker.Mock()
        view.controller.autohide = autohide
        view.body.contents = ["streams", "messages", "users"]
        view.left_panel = mocker.Mock()
        view.right_panel = mocker.Mock()
        view.controller.is_in_editor_mode = lambda: False
        size = widget_size(view)

        returned_key = view.keypress(size, key)

        mocked_middle_column.keypress.assert_called_once_with(size, key)
        assert returned_key == key
        assert view.body.focus_col == 1