~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to doc/email.txt

  • Committer: Gavin Panella
  • Date: 2011-08-16 19:30:17 UTC
  • mto: This revision was merged to the branch mainline in revision 13855.
  • Revision ID: gavin.panella@canonical.com-20110816193017-7r9zsh1tqmhhdpky
Update mailer documentation.

Show diffs side-by-side

added added

removed removed

Lines of Context:
120
120
Functional Tests
121
121
----------------
122
122
 
123
 
The functional test harness is configured to allow easy testing of
124
 
emails.  See `canonical/launchpad/mail/ftests/test_stub.py` for example
125
 
code.
 
123
The functional test harness is configured to allow easy testing of emails.
 
124
See `lp/services/mail/tests/test_stub.py` for example code.
126
125
 
127
126
 
128
127
Details
133
132
implementations:
134
133
 
135
134
    1. `QueuedDelivery` -- email is delivered in a seperate thread. We use
136
 
        this for production.
 
135
       this for production.
137
136
 
138
137
    2. `DirectDelivery` -- email is send synchronously during transaction
139
 
        commit.  We use this for tests.
 
138
       commit.  We use this for tests.
140
139
 
141
140
Both implementations will send no email if the transaction is aborted.  Both
142
141
implementations use events to notify anything that cares to subscribe if
154
153
for use with Launchpad development (production instances will just use
155
154
`SMTPMailer` or `SendmailMailer`):
156
155
 
157
 
    3. StubMailer -- rewrites the envelope headers and optionally the RFC 2822
158
 
       To and From headers before handing on to a different `IMailer`.
 
156
    3. `StubMailer` -- rewrites the envelope headers and optionally the RFC
 
157
       2822 To and From headers before handing on to a different `IMailer`.
159
158
 
160
 
    4. TestMailer -- stores the email in memory in a Python list object called
161
 
       `lp.services.mail.stub.test_email` for easy access by unit
 
159
    4. `TestMailer` -- stores the email in memory in a Python list object
 
160
       called `lp.services.mail.stub.test_email` for easy access by unit
162
161
       tests.
163
162
 
164
 
    5. MboxMailer -- stores the email in a Unix mbox file before optionally
 
163
    5. `MboxMailer` -- stores the email in a Unix mbox file before optionally
165
164
       handing the message off to another `IMailer`.
166
165
 
167
166
Developers (and production and dogfood server, until we are confident
173
172
The functional test suite is already configured to use the TestMailer.
174
173
However, if you use a StubMailer or MboxMailer and want the test suite to
175
174
work, you must hook it up to a TestMailer explicitly.  See
176
 
`canonical/launchpad/mail/ftests/test_stub.py` for an example showing how
177
 
functional tests can check that notifications are being sent correctly.
 
175
`lp/services/mail/tests/test_stub.py` for an example showing how functional
 
176
tests can check that notifications are being sent correctly.