Example #1
0
    def test_send_plain(
        self,
        mock_smtp: mock.Mock,
        msg_args: Dict[str, Any],
        expected_args: Dict[str, str],
    ):
        target = client.SMTPClient("localhost", from_addr="eek@localhost")

        msg_args.setdefault("to", ["foo@localhost", "bar@localhost"])
        msg_args.setdefault("subject", "Test Subject")
        msg_args.setdefault("body", "Hi Everybody\n\n- Bye!")

        expected_args.setdefault("To", "foo@localhost, bar@localhost")
        expected_args.setdefault("From", "eek@localhost")
        expected_args.setdefault("Subject", "Test Subject")
        expected_args.setdefault("CC", None)
        expected_args.setdefault("BCC", None)

        with target:
            target.send_plain(**msg_args)

        mock_smtp.return_value.send_message.assert_called_once()
        actual = mock_smtp.return_value.send_message.call_args[0][0]

        for key, value in expected_args.items():
            assert actual[key] == value
        assert actual._payload == "Hi Everybody\n\n- Bye!"
Example #2
0
    def test_send_message(self, mock_smtp: mock.Mock):
        target = client.SMTPClient("localhost")
        msg = client.MIMEText("Foo")

        with target:
            target.send_message(msg)

        mock_smtp.return_value.send_message.assert_called_once_with(msg)
Example #3
0
    def test_connect__with_credentials(self, mock_smtp: mock.Mock):
        target = client.SMTPClient("localhost", username="******", password="******")

        target.connect()
        assert target.smtp is mock_smtp.return_value
        mock_smtp.assert_called_with("localhost", 0, None,
                                     client.socket._GLOBAL_DEFAULT_TIMEOUT,
                                     None)
        target.smtp.login.assert_called_with("foo", "bar")
Example #4
0
    def test_context_manager(self, mock_smtp: mock.Mock):
        target = client.SMTPClient("localhost")

        with target:
            assert target.smtp is mock_smtp.return_value
            mock_smtp.assert_called_once_with(
                "localhost", 0, None, client.socket._GLOBAL_DEFAULT_TIMEOUT,
                None)

        assert target.smtp is None
Example #5
0
    def test_send_message__not_connected(self, mock_smtp: mock.Mock):
        target = client.SMTPClient("localhost")
        msg = client.MIMEText("Foo")

        with pytest.raises(client.NotConnected):
            target.send_message(msg)
Example #6
0
    def test_connect(self, mock_smtp: mock.Mock):
        target = client.SMTPClient("localhost", port=25, timeout=50)

        target.connect()
        assert target.smtp is mock_smtp.return_value
        mock_smtp.assert_called_with("localhost", 25, None, 50, None)