def test_copy_event(self): from tinymail.account import folder_updated with mock_worker(**self.imap_data) as worker: with listen_for(folder_updated) as caught_signals: self.fol1.copy_messages([13], self.fol2) uid = max(self.fol2._messages.keys()) event_data = {'added': [uid], 'removed': [], 'flags_changed': []} self.assertEqual(caught_signals, [(self.fol2, event_data)])
def test_select_folder(self): from tinymail.ui_delegates import folder_selected with listen_for(folder_selected) as caught_signals: self.folders_pane.selectRowIndexes_byExtendingSelection_( objc_index_set([2]), False) account_controller = self.folders_pane.delegate() self.assertEqual(caught_signals, [ (account_controller, {'folder': self.account.get_folder('fol2')}), ])
def test_list_folders(self): from tinymail.account import account_updated account = _account_for_test() folders = {'fol1': {}, 'fol2': {}} with mock_worker(**folders): with listen_for(account_updated) as caught_signals: account.perform_update() self.assertEqual(set(f.name for f in account.list_folders()), set(folders)) self.assertEqual(caught_signals, [(account, {})])
def test_select_message(self): from tinymail.ui_delegates import message_selected with listen_for(message_selected) as caught_signals: self.messages_pane.selectRowIndexes_byExtendingSelection_( objc_index_set([1]), False) fol1 = self.account.get_folder('fol1') folder_controller = self.messages_pane.delegate() self.assertEqual(caught_signals, [ (folder_controller, {'message': fol1.get_message(8)}), ]) self.assertEqual(list(folder_controller.get_selected_messages()), [fol1.get_message(8)])
def test_message_removed_on_server(self): from tinymail.account import folder_updated account = _account_for_test() with mock_worker(fol1={6: None, 8: None}): account.perform_update() with mock_worker(fol1={6: None}): with listen_for(folder_updated) as caught_signals: account.perform_update() fol1 = account.get_folder('fol1') self.assertEqual([m.uid for m in fol1.list_messages()], [6]) event_data = {'added': [], 'removed': [8], 'flags_changed': []} self.assertEqual(caught_signals, [(fol1, event_data)])
def test_message_flags_changed(self): from tinymail.account import folder_updated account = _account_for_test() msg13_bis_data = (13, set([r'\Flagged']), "Subject: test message") with mock_worker(fol1={13: msg13_data}): account.perform_update() with mock_worker(fol1={13: msg13_bis_data}): with listen_for(folder_updated) as caught_signals: account.perform_update() fol1 = account.get_folder('fol1') self.assertEqual([m.flags for m in fol1.list_messages()], [set(['\\Flagged'])]) event_data = {'added': [], 'removed': [], 'flags_changed': [13]} self.assertEqual(caught_signals, [(fol1, event_data)])
def test_load_full_message(self): from tinymail.account import message_updated account = _account_for_test() mime_message = "Subject: hi\r\n\r\nHello world!" with mock_worker(fol1={6: None}) as worker: account.perform_update() message = account.get_folder('fol1')._messages[6] worker.get_message_body.return_value = defer(mime_message) worker.close_mailbox.reset_mock() with listen_for(message_updated) as caught_signals: message.load_full() self.assertEqual(message.raw_full, mime_message) self.assertEqual(caught_signals, [(message, {})]) worker.close_mailbox.assert_called_once_with()
def test_del_flag(self): from tinymail.account import folder_updated fol1 = self.account.get_folder('fol1') with mock_worker(**self.imap_data) as worker: with listen_for(folder_updated) as caught_signals: fol1.change_flag([4, 15], 'del', '\\Seen') event_data = {'added': [], 'removed': [], 'flags_changed': [4, 15]} self.assertEqual(caught_signals, [(fol1, event_data)]) worker.change_flag.assert_called_once_with([4, 15], 'del', '\\Seen') self.assertEqual(fol1.get_message(4).flags, set()) self.assertEqual(fol1.get_message(15).flags, set(['\\Flagged'])) accountB = _account_for_test(db=self.db) fol1B = accountB.get_folder('fol1') self.assertEqual(fol1B.get_message(4).flags, set()) self.assertEqual(fol1B.get_message(15).flags, set(['\\Flagged']))