예제 #1
0
    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")
예제 #2
0
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
예제 #3
0
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
예제 #4
0
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"
예제 #5
0
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
예제 #6
0
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")