Beispiel #1
0
    def test_SMTPDataManager(self, get_smtp_server):
        'Test SMTPDataManager'
        transaction = Transaction()
        get_smtp_server.return_value = server = Mock()

        datamanager = transaction.join(SMTPDataManager())

        # multiple join must return the same
        self.assertEqual(transaction.join(SMTPDataManager()), datamanager)

        msg1 = MagicMock(Message)
        msg2 = MagicMock(Message)
        datamanager.put('*****@*****.**', '*****@*****.**', msg1)
        datamanager.put('*****@*****.**', '*****@*****.**', msg2)

        transaction.commit()

        server.sendmail.assert_has_calls([
            call('*****@*****.**', '*****@*****.**', msg1.as_string()),
            call('*****@*****.**', '*****@*****.**', msg2.as_string()),
        ])
        server.quit.assert_called_once_with()
        self.assertFalse(datamanager.queue)

        server.reset_mock()

        datamanager.put('*****@*****.**', '*****@*****.**',
                        MagicMock(Message))
        transaction.rollback()

        server.sendmail.assert_not_called()
        self.assertFalse(datamanager.queue)
Beispiel #2
0
    def test_SMTPDataManager(self, get_smtp_server):
        "Test SMTPDataManager"
        transaction = Transaction()
        get_smtp_server.return_value = server = Mock()

        datamanager = transaction.join(SMTPDataManager())

        # multiple join must return the same
        self.assertEqual(transaction.join(SMTPDataManager()), datamanager)

        msg1 = Mock(Message)
        msg2 = Mock(Message)
        datamanager.put("*****@*****.**", "*****@*****.**", msg1)
        datamanager.put("*****@*****.**", "*****@*****.**", msg2)

        transaction.commit()

        server.sendmail.assert_has_calls(
            [
                call("*****@*****.**", "*****@*****.**", msg1.as_string()),
                call("*****@*****.**", "*****@*****.**", msg2.as_string()),
            ]
        )
        server.quit.assert_called_once_with()
        self.assertFalse(datamanager.queue)

        server.reset_mock()

        datamanager.put("*****@*****.**", "*****@*****.**", Mock(Message))
        transaction.rollback()

        server.sendmail.assert_not_called()
        self.assertFalse(datamanager.queue)
    def test_MessageDataManager_multiple_join(self, get_twilio_client):
        "Test MessageDataManager multiple join"
        transaction = Transaction()

        datamanager = transaction.join(twilio_messages.MessageDataManager())

        self.assertIs(
            transaction.join(twilio_messages.MessageDataManager()),
            datamanager)
 def send(self, transaction=None, datamanager=None):
     assert self.id >= 0, self.id
     if transaction is None:
         transaction = Transaction()
     assert isinstance(transaction, Transaction), transaction
     if datamanager is None:
         datamanager = MessageDataManager()
     datamanager = transaction.join(datamanager)
     datamanager.put(self.values)
Beispiel #5
0
def sendmail_transactional(
        from_addr, to_addrs, msg, transaction=None, datamanager=None,
        strict=False):
    if transaction is None:
        transaction = Transaction()
    assert isinstance(transaction, Transaction), transaction
    if datamanager is None:
        datamanager = SMTPDataManager(strict=strict)
    datamanager = transaction.join(datamanager)
    datamanager.put(from_addr, to_addrs, msg)
    def test_MessageDataManager_rollback(self, get_twilio_client, sendmessage):
        "Test MessageDataManager rollback"
        transaction = Transaction()

        datamanager = transaction.join(twilio_messages.MessageDataManager())
        message = {}
        datamanager.put(message)
        transaction.rollback()

        sendmessage.assert_not_called()
        self.assertFalse(datamanager.queue)
    def test_MessageDataManager_commit(self, get_twilio_client, sendmessage):
        "Test MessageDataManager commit"
        transaction = Transaction()
        get_twilio_client.return_value = client = Mock()

        datamanager = transaction.join(twilio_messages.MessageDataManager())
        message = {'to': '+123456', 'body': "Message"}
        datamanager.put(message)
        transaction.commit()

        sendmessage.assert_called_once_with(message, client=client)