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)
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)
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)