Skip to content

Commit 4004b4b

Browse files
committed
tests: boxes: Add SAVE_AS_DRAFT keypress test for write box.
Partially fixes #739
1 parent 2b8a305 commit 4004b4b

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

tests/ui_tools/test_boxes.py

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,51 @@ def test_not_calling_send_private_message_without_recipients(self, key,
6868

6969
assert not write_box.model.send_private_message.called
7070

71+
@pytest.mark.parametrize('key', keys_for_command('SAVE_AS_DRAFT'))
72+
@pytest.mark.parametrize('stream_message', [True, False])
73+
@pytest.mark.parametrize('draft_message_in_current_session', [
74+
True, None,
75+
], ids=[
76+
'different_saved_draft_in_current_session',
77+
'no_saved_draft_in_current_session',
78+
])
79+
def test_keypress_SAVE_DRAFT_MESSAGE(self, key, mocker, stream_message,
80+
draft_message_in_current_session,
81+
write_box, widget_size):
82+
mocker.patch(BOXES + '.WriteBox.update_recipient_emails')
83+
(write_box.model.session_draft_message.
84+
return_value) = draft_message_in_current_session
85+
write_box.stream_write_box = mocker.Mock(edit_text="Current Stream")
86+
write_box.title_write_box = mocker.Mock(edit_text="Topic")
87+
write_box.msg_write_box = mocker.Mock(edit_text="Random message")
88+
write_box.recipient_emails = ['[email protected]']
89+
90+
if stream_message:
91+
write_box.stream_id = 1
92+
draft = {
93+
'type': 'stream',
94+
'to': 'Current Stream',
95+
'content': 'Random message',
96+
'subject': 'Topic'
97+
}
98+
else:
99+
write_box.to_write_box = mocker.Mock()
100+
draft = {
101+
'type': 'private',
102+
'to': ['[email protected]'],
103+
'content': 'Random message'
104+
}
105+
106+
size = widget_size(write_box)
107+
write_box.keypress(size, key)
108+
109+
if not draft_message_in_current_session:
110+
write_box.model.save_draft.assert_called_once_with(draft)
111+
else:
112+
(write_box.view.controller.save_draft_confirmation_popup.
113+
assert_called_once_with(draft))
114+
assert write_box.model.session_draft_message.called
115+
71116
@pytest.mark.parametrize('text, state', [
72117
('Plain Text', 0),
73118
('Plain Text', 1),

0 commit comments

Comments
 (0)