On 17/07/13 13:34, Arnel Legaspi wrote:
the trouble I have is on making the unit tests run such that
it
will force the script I'm testing to send the email. If I just use the
script
on my own, it does send the emails, no problem. With the unit tests I've
written, it's not doing so.
How does your script send emails? At some place, there will be something that
effectively does the following steps:
* build email
* send email
I recommend that your script has a function that does each: somewhere you have
something that says
def build_email_body(arg1, arg2, arg3):
...
def send_email(body):
...
Then you can test each separately. In your unit tests, you just call
build_email_body and sees if it returns the correct data, no sending required;
and then you call send_email and see that it actually sends an email.
Oh, all of this assumes that the unit test imports your script! This makes it
critical that your script includes something like this at the end:
def run(): # or "main", if you prefer
# script logic goes in here
if __name__ == '__main__':
run()
Then your tests can import the script without it automatically running.
--
Steven
_______________________________________________
Tutor maillist - [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor