def test_SMTPError(self): err = server.SMTPError(550) self.assertEqual(str(err), '550 Permanent Failure Mail Delivery Protocol Status') err = server.SMTPError(400) self.assertEqual(str(err), '400 Persistent Transient Failure Other or Undefined Status') err = server.SMTPError(425) self.assertEqual(str(err), '425 Persistent Transient Failure Mailbox Status') err = server.SMTPError(999) self.assertEqual(str(err), "999 ") err = server.SMTPError(999, "Bogus Error Code") self.assertEqual(str(err), "999 Bogus Error Code")
def test_SMTPReceiver_process_message(): receiver = server.SMTPReceiver(host="localhost", port=0) msg = test_mail_request() with patch("salmon.server.routing.Router") as router_mock, \ patch("salmon.server.undeliverable_message"): response = receiver.process_message(msg.Peer, msg.From, msg.To, str(msg)) assert response is None, response with patch("salmon.server.routing.Router") as router_mock, \ patch("salmon.server.undeliverable_message"): router_mock.deliver.side_effect = Exception() response = receiver.process_message(msg.Peer, msg.From, msg.To, str(msg)) assert response is None, response with patch("salmon.server.routing.Router") as router_mock, \ patch("salmon.server.undeliverable_message"): router_mock.deliver.side_effect = server.SMTPError(450, "Not found") response = receiver.process_message(msg.Peer, msg.From, msg.To, str(msg)) assert_equal(response, "450 Not found") # Python 3's smtpd takes some extra kawrgs, but i we don't care about that at the moment with patch("salmon.server.routing.Router") as router_mock, \ patch("salmon.server.undeliverable_message"): response = receiver.process_message(msg.Peer, msg.From, msg.To, str(msg), mail_options=[], rcpt_options=[]) assert response is None, response
def test_LMTPReceiver_process_message(): receiver = server.LMTPReceiver(host="localhost", port=0) msg = test_mail_request() with patch("salmon.server.routing.Router") as router_mock, \ patch("salmon.server.undeliverable_message"): response = receiver.process_message(msg.Peer, msg.From, msg.To, str(msg)) assert response is None, response with patch("salmon.server.routing.Router") as router_mock, \ patch("salmon.server.undeliverable_message"): router_mock.deliver.side_effect = Exception() response = receiver.process_message(msg.Peer, msg.From, msg.To, str(msg)) assert response is None, response with patch("salmon.server.routing.Router") as router_mock, \ patch("salmon.server.undeliverable_message"): router_mock.deliver.side_effect = server.SMTPError(450, "Not found") response = receiver.process_message(msg.Peer, msg.From, msg.To, str(msg)) assert_equal(response, "450 Not found") # lmtpd's server is a subclass of smtpd's server, so we should support the same kwargs here with patch("salmon.server.routing.Router") as router_mock, \ patch("salmon.server.undeliverable_message"): response = receiver.process_message(msg.Peer, msg.From, msg.To, str(msg), mail_options=[], rcpt_options=[]) assert response is None, response
def test_SMTPError(): err = server.SMTPError(550) assert str( err ) == '550 Permanent Failure Mail Delivery Protocol Status', "Error is wrong: %r" % str( err) err = server.SMTPError(400) assert str( err ) == '400 Persistent Transient Failure Other or Undefined Status', "Error is wrong: %r" % str( err) err = server.SMTPError(425) assert str( err ) == '425 Persistent Transient Failure Mailbox Status', "Error is wrong: %r" % str( err) err = server.SMTPError(999) assert str(err) == "999 ", "Error is wrong: %r" % str(err) err = server.SMTPError(999, "Bogus Error Code") assert str(err) == "999 Bogus Error Code"
def test_QueueReceiver_process_message(queue_mock): receiver = server.QueueReceiver("run/queue/thingy") msg = test_mail_request() with patch("salmon.server.routing.Router") as router_mock, \ patch("salmon.server.undeliverable_message"): response = receiver.process_message(msg) assert response is None, response with patch("salmon.server.routing.Router") as router_mock, \ patch("salmon.server.undeliverable_message"): router_mock.deliver.side_effect = Exception() response = receiver.process_message(msg) assert response is None, response with patch("salmon.server.routing.Router") as router_mock, \ patch("salmon.server.undeliverable_message"): router_mock.deliver.side_effect = server.SMTPError(450, "Not found") response = receiver.process_message(msg) # queue doesn't actually support SMTPErrors assert response is None, response
def test_SMTPReceiver_process_message(): receiver = server.SMTPReceiver(host="localhost", port=0) msg = test_mail_request() with patch("salmon.server.routing.Router") as router_mock, \ patch("salmon.server.undeliverable_message"): response = receiver.process_message(msg.Peer, msg.From, msg.To, str(msg)) assert response is None, response with patch("salmon.server.routing.Router") as router_mock, \ patch("salmon.server.undeliverable_message"): router_mock.deliver.side_effect = Exception() response = receiver.process_message(msg.Peer, msg.From, msg.To, str(msg)) assert response is None, response with patch("salmon.server.routing.Router") as router_mock, \ patch("salmon.server.undeliverable_message"): router_mock.deliver.side_effect = server.SMTPError(450, "Not found") response = receiver.process_message(msg.Peer, msg.From, msg.To, str(msg)) assert_equal(response, "450 Not found")