| #!/usr/bin/python |
| |
| import unittest |
| import mail, email |
| |
| class test_data: |
| mail_host = None |
| mail_port = None |
| mail_connect = False |
| mail_from_address = None |
| mail_to_address = None |
| mail_message = None |
| |
| |
| # we define our needed mock SMTP |
| class SMTP: |
| def __init__(self, host=None, port=25): |
| test_data.mail_host = host |
| test_data.mail_port = port |
| |
| if test_data.mail_host: |
| self.connect(test_data.mail_host, test_data.mail_port) |
| |
| |
| def connect(self, host, port): |
| test_data.mail_connect = True |
| |
| |
| def quit(self): |
| test_data.mail_connect = False |
| |
| |
| def sendmail(self, from_address, to_address, message): |
| test_data.mail_from_address = from_address |
| test_data.mail_to_address = to_address |
| test_data.mail_message = message |
| |
| |
| class mail_test(unittest.TestCase): |
| cached_SMTP = None |
| |
| def setUp(self): |
| # now perform the slip |
| self.cached_SMTP = mail.smtplib.SMTP |
| mail.smtplib.SMTP = SMTP |
| |
| |
| def tearDown(self): |
| # now put things back |
| mail.smtplib.SMTP = self.cached_SMTP |
| |
| |
| def test_send_message(self): |
| message = email.Message.Message() |
| message["To"] = "you" |
| message["Cc"] = "them" |
| message["From"] = "me" |
| message["Subject"] = "hello" |
| message.set_payload("Hello everybody!") |
| |
| mail.send("me", "you", "them", "hello", "Hello everybody!") |
| self.assertEquals("me", test_data.mail_from_address) |
| self.assertEquals(["you","them"], test_data.mail_to_address) |
| self.assertEquals(message.as_string(), test_data.mail_message) |
| |
| |
| # this is so the test can be run in standalone mode |
| if __name__ == '__main__': |
| unittest.main() |