Exemple #1
0
    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)])
Exemple #2
0
    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')}),
        ])
Exemple #3
0
    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, {})])
Exemple #4
0
    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)])
Exemple #5
0
    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)])
Exemple #6
0
    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)])
Exemple #7
0
    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()
Exemple #8
0
    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']))