| 1 | diff -r 91840406d81b tests/test_debug_provider.py |
|---|
| 2 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|---|
| 3 | +++ b/tests/test_debug_provider.py Mon Jul 14 21:59:43 2008 +0200 |
|---|
| 4 | @@ -0,0 +1,34 @@ |
|---|
| 5 | + |
|---|
| 6 | + |
|---|
| 7 | +'''Test that the debug provider stores all "sent" mails.''' |
|---|
| 8 | + |
|---|
| 9 | +import unittest |
|---|
| 10 | + |
|---|
| 11 | +import turbomail |
|---|
| 12 | +from turbomail.control import interface |
|---|
| 13 | +from turbomail import Message |
|---|
| 14 | +from turbomail.managers.immediate import ImmediateManager |
|---|
| 15 | +from turbomail.providers.debug import DebugProviderFactory |
|---|
| 16 | + |
|---|
| 17 | +class TestDebugProviderStoresAllMail(unittest.TestCase): |
|---|
| 18 | + |
|---|
| 19 | + def setUp(self): |
|---|
| 20 | + interface.config = {'mail.on': True} |
|---|
| 21 | + manager = ImmediateManager() |
|---|
| 22 | + interface.start(manager=manager, |
|---|
| 23 | + provider=DebugProviderFactory()) |
|---|
| 24 | + self.msg = Message(sender='foo@example.com', recipient='to@example.com', |
|---|
| 25 | + subject='Test', plain='Foo') |
|---|
| 26 | + |
|---|
| 27 | + def tearDown(self): |
|---|
| 28 | + interface.stop(force=True) |
|---|
| 29 | + interface.config = {'mail.on': False} |
|---|
| 30 | + |
|---|
| 31 | + def test_fetch_sent_messages(self): |
|---|
| 32 | + msg_string = str(self.msg) |
|---|
| 33 | + turbomail.send(self.msg) |
|---|
| 34 | + |
|---|
| 35 | + stored_mails = interface.manager.provider.get_sent_mails() |
|---|
| 36 | + self.assertEqual(1, len(stored_mails)) |
|---|
| 37 | + self.assertEqual(msg_string, str(stored_mails[0])) |
|---|
| 38 | + |
|---|
| 39 | diff -r 91840406d81b turbomail/control.py |
|---|
| 40 | --- a/turbomail/control.py Mon Jul 14 21:59:34 2008 +0200 |
|---|
| 41 | +++ b/turbomail/control.py Mon Jul 14 21:59:43 2008 +0200 |
|---|
| 42 | @@ -123,7 +123,6 @@ |
|---|
| 43 | def send(self, message): |
|---|
| 44 | if not self.manager: |
|---|
| 45 | raise MailNotEnabledError |
|---|
| 46 | - |
|---|
| 47 | return self.manager.deliver(message) |
|---|
| 48 | |
|---|
| 49 | |
|---|
| 50 | diff -r 91840406d81b turbomail/providers/debug.py |
|---|
| 51 | --- a/turbomail/providers/debug.py Mon Jul 14 21:59:34 2008 +0200 |
|---|
| 52 | +++ b/turbomail/providers/debug.py Mon Jul 14 21:59:43 2008 +0200 |
|---|
| 53 | @@ -1,16 +1,14 @@ |
|---|
| 54 | |
|---|
| 55 | - |
|---|
| 56 | """TurboMail extension API.""" |
|---|
| 57 | |
|---|
| 58 | __version__ = "$Revision: 84 $" |
|---|
| 59 | |
|---|
| 60 | +import copy |
|---|
| 61 | import logging |
|---|
| 62 | log = logging.getLogger("turbomail.provider") |
|---|
| 63 | deliverylog = logging.getLogger("turbomail.delivery") |
|---|
| 64 | |
|---|
| 65 | -import turbomail |
|---|
| 66 | from turbomail.api import ProviderFactory, Provider |
|---|
| 67 | -from turbomail.exceptions import ProviderExhaustedException |
|---|
| 68 | |
|---|
| 69 | __all__ = ['load'] |
|---|
| 70 | |
|---|
| 71 | @@ -23,6 +21,7 @@ |
|---|
| 72 | def __init__(self): |
|---|
| 73 | super(DebugProvider, self).__init__() |
|---|
| 74 | log.debug("Debug provider setup.") |
|---|
| 75 | + self._sent_mails = [] |
|---|
| 76 | |
|---|
| 77 | def __del__(self): |
|---|
| 78 | if log: log.debug("Debug provider teardown.") |
|---|
| 79 | @@ -30,16 +29,20 @@ |
|---|
| 80 | def deliver(self, message): |
|---|
| 81 | log.info("Attempting delivery of message %s." % message.id) |
|---|
| 82 | deliverylog.info("%s DELIVER" % message.id) |
|---|
| 83 | - |
|---|
| 84 | - for i in str(message).split("\n"): |
|---|
| 85 | + msg_string = str(message) |
|---|
| 86 | + self._sent_mails.append(msg_string) |
|---|
| 87 | + for i in msg_string.split("\n"): |
|---|
| 88 | deliverylog.debug("%s BODY %s" % (message.id, str(i))) |
|---|
| 89 | |
|---|
| 90 | deliverylog.info("%s SENT" % message.id) |
|---|
| 91 | return True |
|---|
| 92 | + |
|---|
| 93 | + def get_sent_mails(self): |
|---|
| 94 | + return copy.copy(self._sent_mails) |
|---|
| 95 | |
|---|
| 96 | |
|---|
| 97 | class DebugProviderFactory(ProviderFactory): |
|---|
| 98 | name = "Debug" |
|---|
| 99 | version = "1.0" |
|---|
| 100 | url = "http://www.python-turbomail.org/wiki/DebugProvider" |
|---|
| 101 | - provider = DebugProvider |
|---|
| 102 | \ No newline at end of file |
|---|
| 103 | + provider = DebugProvider |
|---|