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