[BangPypers] Embedded python mail server

Dhananjay Nene dhananjay.nene at gmail.com
Wed Aug 24 09:07:18 CEST 2011


On Wed, Aug 24, 2011 at 12:34 PM, Dhananjay Nene
<dhananjay.nene at gmail.com> wrote:
> On Wed, Aug 24, 2011 at 12:25 PM, Gopalakrishnan Subramani
> <gopalakrishnan.subramani at gmail.com> wrote:
>> So you basically look for SMTP and also a POP3 access to the server? With
>> that you could send a mail using SMTP and retrieve using POP3 to make sure
>> the mail reached safely? There is no way to get the return receipt in SMTP
>> (sorry, I could be wrong since I coded SMTP & POP3 6 years back with limited
>> support).
>
> Only SMTP with programmatic access to query received emails is good enough.
>>
>> I used jmailsrv which is simple to configure and test on your scenarios.
>>
>> If you could share your testing strategy to test email, it would lead to
>> good discussion.
>>
>
> There is an released artifact "X". X needs to be tested for acceptance
> criteria. No code changes can be introduced into X. X sends out
> emails. Test cases need to test whether the mails got sent out
> correctly. Thus after running test sequences, the mails that have gone
> out need to be verified. The intent is to embed the mail server into
> the test case (not X). Thus outgoing emails from X will get dispatched
> to and received by the embedded mail server. Since test cases (but not
> X) have programmatic access to X and its datastore, using whatever is
> the available mail server api to query the mails it has received is
> acceptable mechanism of verification. Using a embedded python mail
> server helps the test cases to just test the received emails using
> python calls rather than having to do POP3 calls instead.
>
s/programmatic access to X and its datastore/programmatic access to
mail server and its datastore/g
> Dhananjay
>
>>
>> On Wed, Aug 24, 2011 at 12:42 AM, Dhananjay Nene
>> <dhananjay.nene at gmail.com>wrote:
>>
>>> On Wed, Aug 24, 2011 at 12:03 PM, Gopalakrishnan Subramani
>>> <gopalakrishnan.subramani at gmail.com> wrote:
>>> > Use the http://hg.python.org/cpython/file/2.7/Lib/smtpd.py server. smtpd
>>> is
>>> > a proxy so only look at the client interface level, you may not need to
>>> push
>>> > to local server, no need to store to DB etc.
>>> >
>>> > you copy the file and modify and wrap to meet your automation needs and
>>> to
>>> > get the response confirmation once the mail delivered.
>>> >
>>> > SMTP RFC is very simple to code even in C++ & Java.  But until or unless
>>> you
>>> > have mail client or mail proxy or a email server as your core
>>> > business/module or automating the application functional testing, you
>>> don't
>>> > need to worry about testing with real mail server.
>>> >
>>> > Since you have mentioned as automated test, I assume that you don't mean
>>> > unit testing.
>>>
>>> It is automated acceptance testing .. so testing is strictly at the
>>> system boundaries. So it has to test the released version of the
>>> artifact - without *any* changes. I presume that would constrain me
>>> from introducing a different smtpd.py
>>>
>>> > Gopal
>>> >
>>> >
>>> >
>>> >
>>> > On Tue, Aug 23, 2011 at 11:39 PM, Dhananjay Nene
>>> > <dhananjay.nene at gmail.com>wrote:
>>> >
>>> >> On Wed, Aug 24, 2011 at 11:06 AM, Anand Chitipothu <
>>> anandology at gmail.com>
>>> >> wrote:
>>> >> > 2011/8/24 Dhananjay Nene <dhananjay.nene at gmail.com>:
>>> >> >> What would be good options to embed a python mail server ?
>>> >> >>
>>> >> >> The scope is strictly restricted to automated testing. So the
>>> embedded
>>> >> >> mail server (embedded in the test cases) acts as the server which
>>> >> >> receives email and is in turn further queried to ensure receipt of
>>> >> >> email correctly.
>>> >> >>
>>> >> >> One option is http://lamsonproject.org/
>>> >> >>
>>> >> >> Are there any other options you might suggest?
>>> >> >
>>> >> > Do you really want to run a mail server for testing? I usually monkey
>>> >> > patch the function to send email and store the emails in a global
>>> >> > variable for later access.
>>> >> >
>>> >>
>>> >> In automated acceptance testing context I believe it would be
>>> >> appropriate to implement a mail server. With unit tests, stubbing the
>>> >> mail server with a mock would've been fine.
>>> >>
>>> >> Dhananjay
>>> _______________________________________________
>>> BangPypers mailing list
>>> BangPypers at python.org
>>> http://mail.python.org/mailman/listinfo/bangpypers
>>>
>> _______________________________________________
>> BangPypers mailing list
>> BangPypers at python.org
>> http://mail.python.org/mailman/listinfo/bangpypers
>>
>
>
>
> --
> ----------------------------------------------------------------------------------------------------------------------------------
> http://blog.dhananjaynene.com twitter: @dnene google plus:
> http://gplus.to/dhananjaynene
>



-- 
----------------------------------------------------------------------------------------------------------------------------------
http://blog.dhananjaynene.com twitter: @dnene google plus:
http://gplus.to/dhananjaynene


More information about the BangPypers mailing list