From ce74be89ef4d1044a24c8d1d4b98f008c8b3fdd5 Mon Sep 17 00:00:00 2001 From: Ole Laursen Date: Tue, 15 Nov 2011 11:24:33 +0000 Subject: [PATCH] Use the test mode in the mail code when running automated tests instead of reinventing the wheel in test_runner - Legacy-Id: 3620 --- ietf/announcements/tests.py | 30 +++++----- ietf/idrfc/tests.py | 104 ++++++++++++++++---------------- ietf/idrfc/testsREDESIGN.py | 116 ++++++++++++++++++------------------ ietf/ietfworkflows/tests.py | 44 +++++++------- ietf/ipr/tests.py | 6 +- ietf/liaisons/tests.py | 36 +++++------ ietf/submit/tests.py | 70 +++++++++++----------- ietf/utils/mail.py | 2 +- ietf/utils/test_runner.py | 9 +-- ietf/wgchairs/tests.py | 6 +- 10 files changed, 209 insertions(+), 214 deletions(-) diff --git a/ietf/announcements/tests.py b/ietf/announcements/tests.py index 198aac9ea..affd5d022 100644 --- a/ietf/announcements/tests.py +++ b/ietf/announcements/tests.py @@ -4,8 +4,8 @@ from django.conf import settings import django.test from ietf.utils.test_utils import SimpleUrlTestCase, canonicalize_sitemap -from ietf.utils.test_runner import mail_outbox from ietf.utils.test_data import make_test_data +from ietf.utils.mail import outbox from ietf.announcements.models import ScheduledAnnouncement @@ -31,13 +31,13 @@ class SendScheduledAnnouncementsTestCase(django.test.TestCase): content_type="", ) - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) from ietf.announcements.send_scheduled import send_scheduled_announcement send_scheduled_announcement(a) - self.assertEquals(len(mail_outbox), mailbox_before + 1) - self.assertTrue("This is a test" in mail_outbox[-1]["Subject"]) + self.assertEquals(len(outbox), mailbox_before + 1) + self.assertTrue("This is a test" in outbox[-1]["Subject"]) self.assertTrue(ScheduledAnnouncement.objects.get(id=a.id).mail_sent) def test_send_mime_announcement(self): @@ -52,14 +52,14 @@ class SendScheduledAnnouncementsTestCase(django.test.TestCase): content_type='Multipart/Mixed; Boundary="NextPart"', ) - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) from ietf.announcements.send_scheduled import send_scheduled_announcement send_scheduled_announcement(a) - self.assertEquals(len(mail_outbox), mailbox_before + 1) - self.assertTrue("This is a test" in mail_outbox[-1]["Subject"]) - self.assertTrue("--NextPart" in mail_outbox[-1].as_string()) + self.assertEquals(len(outbox), mailbox_before + 1) + self.assertTrue("This is a test" in outbox[-1]["Subject"]) + self.assertTrue("--NextPart" in outbox[-1].as_string()) self.assertTrue(ScheduledAnnouncement.objects.get(id=a.id).mail_sent) @@ -87,13 +87,13 @@ class SendScheduledAnnouncementsTestCaseREDESIGN(django.test.TestCase): send_at=datetime.datetime.now() + datetime.timedelta(hours=12) ) - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) from ietf.announcements.send_scheduled import send_scheduled_announcement send_scheduled_announcement(q) - self.assertEquals(len(mail_outbox), mailbox_before + 1) - self.assertTrue("This is a test" in mail_outbox[-1]["Subject"]) + self.assertEquals(len(outbox), mailbox_before + 1) + self.assertTrue("This is a test" in outbox[-1]["Subject"]) self.assertTrue(SendQueue.objects.get(id=q.id).sent_at) def test_send_mime_announcement(self): @@ -119,14 +119,14 @@ class SendScheduledAnnouncementsTestCaseREDESIGN(django.test.TestCase): send_at=datetime.datetime.now() + datetime.timedelta(hours=12) ) - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) from ietf.announcements.send_scheduled import send_scheduled_announcement send_scheduled_announcement(q) - self.assertEquals(len(mail_outbox), mailbox_before + 1) - self.assertTrue("This is a test" in mail_outbox[-1]["Subject"]) - self.assertTrue("--NextPart" in mail_outbox[-1].as_string()) + self.assertEquals(len(outbox), mailbox_before + 1) + self.assertTrue("This is a test" in outbox[-1]["Subject"]) + self.assertTrue("--NextPart" in outbox[-1].as_string()) self.assertTrue(SendQueue.objects.get(id=q.id).sent_at) if settings.USE_DB_REDESIGN_PROXY_CLASSES: diff --git a/ietf/idrfc/tests.py b/ietf/idrfc/tests.py index c00ef41a4..fe8f8cbf2 100644 --- a/ietf/idrfc/tests.py +++ b/ietf/idrfc/tests.py @@ -44,7 +44,7 @@ from pyquery import PyQuery from ietf.idrfc.models import * from ietf.idtracker.models import * from ietf.utils.test_utils import SimpleUrlTestCase, RealDatabaseTest, login_testing_unauthorized -from ietf.utils.test_runner import mail_outbox +from ietf.utils.mail import outbox class IdRfcUrlTestCase(SimpleUrlTestCase): def testUrls(self): @@ -85,7 +85,7 @@ class ChangeStateTestCase(django.test.TestCase): # change state comments_before = draft.idinternal.comments().count() - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) r = self.client.post(url, dict(state="12", substate="")) @@ -98,9 +98,9 @@ class ChangeStateTestCase(django.test.TestCase): self.assertEquals(draft.idinternal.cur_sub_state, None) self.assertEquals(draft.idinternal.comments().count(), comments_before + 1) self.assertTrue("State changed" in draft.idinternal.comments()[0].comment_text) - self.assertEquals(len(mail_outbox), mailbox_before + 2) - self.assertTrue("State Update Notice" in mail_outbox[-2]['Subject']) - self.assertTrue(draft.filename in mail_outbox[-1]['Subject']) + self.assertEquals(len(outbox), mailbox_before + 2) + self.assertTrue("State Update Notice" in outbox[-2]['Subject']) + self.assertTrue(draft.filename in outbox[-1]['Subject']) def test_request_last_call(self): @@ -109,7 +109,7 @@ class ChangeStateTestCase(django.test.TestCase): self.client.login(remote_user="klm") url = urlreverse('doc_change_state', kwargs=dict(name=draft.filename)) - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) self.assertRaises(BallotInfo.DoesNotExist, lambda: draft.idinternal.ballot) r = self.client.post(url, @@ -131,8 +131,8 @@ class ChangeStateTestCase(django.test.TestCase): self.assertTrue("Technical Summary" in draft.idinternal.ballot.ballot_writeup) # mail notice - self.assertTrue(len(mail_outbox) > mailbox_before) - self.assertTrue("Last Call:" in mail_outbox[-1]['Subject']) + self.assertTrue(len(outbox) > mailbox_before) + self.assertTrue("Last Call:" in outbox[-1]['Subject']) # comment self.assertTrue("Last Call was requested" in draft.idinternal.comments()[0].comment_text) @@ -164,7 +164,7 @@ class EditInfoTestCase(django.test.TestCase): # edit info comments_before = draft.idinternal.comments().count() - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) draft.group = Acronym.objects.get(acronym_id=Acronym.INDIVIDUAL_SUBMITTER) draft.save() new_job_owner = IESGLogin.objects.exclude(id__in=[IESGLogin.objects.get(login_name="klm").id, draft.idinternal.job_owner_id])[0] @@ -189,8 +189,8 @@ class EditInfoTestCase(django.test.TestCase): self.assertEquals(draft.idinternal.note, "") self.assertTrue(not draft.idinternal.agenda) self.assertEquals(draft.idinternal.comments().count(), comments_before + 3) - self.assertEquals(len(mail_outbox), mailbox_before + 1) - self.assertTrue(draft.filename in mail_outbox[-1]['Subject']) + self.assertEquals(len(outbox), mailbox_before + 1) + self.assertTrue(draft.filename in outbox[-1]['Subject']) def test_edit_telechat_date(self): draft = InternetDraft.objects.get(filename="draft-ietf-mipshop-pfmipv6") @@ -251,7 +251,7 @@ class EditInfoTestCase(django.test.TestCase): self.assertTrue('@' in q('form input[name=state_change_notice_to]')[0].get('value')) # add - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) job_owner = IESGLogin.objects.filter(user_level=1)[0] area = Area.active_areas()[0] @@ -277,7 +277,7 @@ class EditInfoTestCase(django.test.TestCase): self.assertEquals(draft.idinternal.comments().count(), 2) self.assertTrue("Draft added" in draft.idinternal.comments()[0].comment_text) self.assertTrue("This is a note" in draft.idinternal.comments()[1].comment_text) - self.assertEquals(len(mail_outbox), mailbox_before) + self.assertEquals(len(outbox), mailbox_before) class ResurrectTestCase(django.test.TestCase): @@ -302,7 +302,7 @@ class ResurrectTestCase(django.test.TestCase): # request resurrect comments_before = draft.idinternal.comments().count() - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) r = self.client.post(url, dict()) self.assertEquals(r.status_code, 302) @@ -311,8 +311,8 @@ class ResurrectTestCase(django.test.TestCase): self.assertEquals(draft.idinternal.resurrect_requested_by, IESGLogin.objects.get(login_name=login_as)) self.assertEquals(draft.idinternal.comments().count(), comments_before + 1) self.assertTrue("Resurrection" in draft.idinternal.comments()[0].comment_text) - self.assertEquals(len(mail_outbox), mailbox_before + 1) - self.assertTrue("Resurrection" in mail_outbox[-1]['Subject']) + self.assertEquals(len(outbox), mailbox_before + 1) + self.assertTrue("Resurrection" in outbox[-1]['Subject']) def test_resurrect(self): draft = InternetDraft.objects.get(filename="draft-ietf-mip6-cn-ipsec") @@ -332,7 +332,7 @@ class ResurrectTestCase(django.test.TestCase): # request resurrect comments_before = draft.idinternal.comments().count() - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) r = self.client.post(url, dict()) self.assertEquals(r.status_code, 302) @@ -342,7 +342,7 @@ class ResurrectTestCase(django.test.TestCase): self.assertEquals(draft.idinternal.comments().count(), comments_before + 1) self.assertTrue("completed" in draft.idinternal.comments()[0].comment_text) self.assertEquals(draft.status.status, "Active") - self.assertEquals(len(mail_outbox), mailbox_before + 1) + self.assertEquals(len(outbox), mailbox_before + 1) class AddCommentTestCase(django.test.TestCase): fixtures = ['base', 'draft'] @@ -360,16 +360,16 @@ class AddCommentTestCase(django.test.TestCase): # request resurrect comments_before = draft.idinternal.comments().count() - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) r = self.client.post(url, dict(comment="This is a test.")) self.assertEquals(r.status_code, 302) self.assertEquals(draft.idinternal.comments().count(), comments_before + 1) self.assertTrue("This is a test." in draft.idinternal.comments()[0].comment_text) - self.assertEquals(len(mail_outbox), mailbox_before + 1) - self.assertTrue("updated" in mail_outbox[-1]['Subject']) - self.assertTrue(draft.filename in mail_outbox[-1]['Subject']) + self.assertEquals(len(outbox), mailbox_before + 1) + self.assertTrue("updated" in outbox[-1]['Subject']) + self.assertTrue(draft.filename in outbox[-1]['Subject']) class EditPositionTestCase(django.test.TestCase): fixtures = ['base', 'draft', 'ballot'] @@ -462,7 +462,7 @@ class EditPositionTestCase(django.test.TestCase): self.assertTrue(len(q('form input[name="cc"]')) > 0) # send - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) IESGComment.objects.create(ballot=draft.idinternal.ballot, ad=IESGLogin.objects.get(login_name=login_as), text="Test!", date=date.today(), @@ -471,8 +471,8 @@ class EditPositionTestCase(django.test.TestCase): r = self.client.post(url, dict(cc="test@example.com", cc_state_change="1")) self.assertEquals(r.status_code, 302) - self.assertEquals(len(mail_outbox), mailbox_before + 1) - self.assertTrue("COMMENT" in mail_outbox[-1]['Subject']) + self.assertEquals(len(outbox), mailbox_before + 1) + self.assertTrue("COMMENT" in outbox[-1]['Subject']) class DeferBallotTestCase(django.test.TestCase): @@ -489,7 +489,7 @@ class DeferBallotTestCase(django.test.TestCase): # defer self.assertTrue(not draft.idinternal.ballot.defer) - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) r = self.client.post(url, dict()) self.assertEquals(r.status_code, 302) @@ -498,9 +498,9 @@ class DeferBallotTestCase(django.test.TestCase): self.assertTrue(draft.idinternal.ballot.defer) self.assertTrue(draft.idinternal.cur_state_id == IDState.IESG_EVALUATION_DEFER) - self.assertEquals(len(mail_outbox), mailbox_before + 2) - self.assertTrue("Deferred" in mail_outbox[-2]['Subject']) - self.assertTrue(draft.file_tag() in mail_outbox[-2]['Subject']) + self.assertEquals(len(outbox), mailbox_before + 2) + self.assertTrue("Deferred" in outbox[-2]['Subject']) + self.assertTrue(draft.file_tag() in outbox[-2]['Subject']) def test_undefer_ballot(self): draft = InternetDraft.objects.get(filename="draft-ietf-mipshop-pfmipv6") @@ -569,7 +569,7 @@ class BallotWriteupsTestCase(django.test.TestCase): url = urlreverse('doc_ballot_lastcall', kwargs=dict(name=draft.filename)) login_testing_unauthorized(self, "klm", url) - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) r = self.client.post(url, dict( last_call_text=draft.idinternal.ballot.last_call_text, @@ -577,9 +577,9 @@ class BallotWriteupsTestCase(django.test.TestCase): draft = InternetDraft.objects.get(filename="draft-ietf-mipshop-pfmipv6") self.assertEquals(draft.idinternal.cur_state_id, IDState.LAST_CALL_REQUESTED) - self.assertEquals(len(mail_outbox), mailbox_before + 3) + self.assertEquals(len(outbox), mailbox_before + 3) - self.assertTrue("Last Call" in mail_outbox[-1]['Subject']) + self.assertTrue("Last Call" in outbox[-1]['Subject']) def test_edit_ballot_writeup(self): draft = InternetDraft.objects.get(filename="draft-ietf-mipshop-pfmipv6") @@ -622,7 +622,7 @@ class BallotWriteupsTestCase(django.test.TestCase): IESGDiscuss.objects.create(ad=active[3], active=True, date=datetime.date.today(), text="test " * 20, ballot=draft.idinternal.ballot) IESGComment.objects.create(ad=active[3], active=True, date=datetime.date.today(), text="test " * 20, ballot=draft.idinternal.ballot) - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) r = self.client.post(url, dict( ballot_writeup=draft.idinternal.ballot.ballot_writeup, @@ -632,8 +632,8 @@ class BallotWriteupsTestCase(django.test.TestCase): draft = InternetDraft.objects.get(filename="draft-ietf-mipshop-pfmipv6") self.assertTrue(draft.idinternal.ballot.ballot_issued) - self.assertEquals(len(mail_outbox), mailbox_before + 2) - self.assertTrue("Evaluation:" in mail_outbox[-2]['Subject']) + self.assertEquals(len(outbox), mailbox_before + 2) + self.assertTrue("Evaluation:" in outbox[-2]['Subject']) def test_edit_approval_text(self): @@ -689,7 +689,7 @@ class ApproveBallotTestCase(django.test.TestCase): self.assertEquals(len(q('pre')), 1) # approve - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) r = self.client.post(url, dict()) self.assertEquals(r.status_code, 302) @@ -697,11 +697,11 @@ class ApproveBallotTestCase(django.test.TestCase): draft = InternetDraft.objects.get(filename="draft-ietf-mipshop-pfmipv6") self.assertEquals(draft.idinternal.cur_state_id, IDState.APPROVED_ANNOUNCEMENT_SENT) - self.assertEquals(len(mail_outbox), mailbox_before + 4) + self.assertEquals(len(outbox), mailbox_before + 4) - self.assertTrue("Protocol Action" in mail_outbox[-2]['Subject']) + self.assertTrue("Protocol Action" in outbox[-2]['Subject']) # the IANA copy - self.assertTrue("Protocol Action" in mail_outbox[-1]['Subject']) + self.assertTrue("Protocol Action" in outbox[-1]['Subject']) class MakeLastCallTestCase(django.test.TestCase): fixtures = ['base', 'draft', 'ballot'] @@ -723,7 +723,7 @@ class MakeLastCallTestCase(django.test.TestCase): self.assertEquals(len(q('input[name=last_call_sent_date]')), 1) # make last call - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) expire_date = q('input[name=last_call_expiration_date]')[0].get("value") @@ -736,11 +736,11 @@ class MakeLastCallTestCase(django.test.TestCase): draft = InternetDraft.objects.get(filename="draft-ietf-mipshop-pfmipv6") self.assertEquals(draft.idinternal.cur_state_id, IDState.IN_LAST_CALL) self.assertEquals(draft.lc_expiration_date.strftime("%Y-%m-%d"), expire_date) - self.assertEquals(len(mail_outbox), mailbox_before + 4) + self.assertEquals(len(outbox), mailbox_before + 4) - self.assertTrue("Last Call" in mail_outbox[-4]['Subject']) + self.assertTrue("Last Call" in outbox[-4]['Subject']) # the IANA copy - self.assertTrue("Last Call" in mail_outbox[-3]['Subject']) + self.assertTrue("Last Call" in outbox[-3]['Subject']) class ExpireIDsTestCase(django.test.TestCase): fixtures = ['base', 'draft'] @@ -796,12 +796,12 @@ class ExpireIDsTestCase(django.test.TestCase): self.assertEquals(len(documents), 1) # test send warning - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) send_expire_warning_for_id(documents[0]) - self.assertEquals(len(mail_outbox), mailbox_before + 1) - self.assertTrue("author@example.com" in str(mail_outbox[-1])) + self.assertEquals(len(outbox), mailbox_before + 1) + self.assertTrue("author@example.com" in str(outbox[-1])) def test_expire_ids(self): from ietf.idrfc.expire import get_expired_ids, send_expire_notice_for_id, expire_id @@ -828,14 +828,14 @@ class ExpireIDsTestCase(django.test.TestCase): for d in documents: # test notice - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) send_expire_notice_for_id(d) self.assertEquals(InternetDraft.objects.get(filename=d.filename).dunn_sent_date, datetime.date.today()) if d.idinternal: - self.assertEquals(len(mail_outbox), mailbox_before + 1) - self.assertTrue("expired" in mail_outbox[-1]["Subject"]) + self.assertEquals(len(outbox), mailbox_before + 1) + self.assertTrue("expired" in outbox[-1]["Subject"]) # test expiry txt = "%s-%s.txt" % (d.filename, d.revision_display()) @@ -960,7 +960,7 @@ class ExpireLastCallTestCase(django.test.TestCase): drafts = get_expired_last_calls() self.assertEquals(len(drafts), 1) - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) comments_before = draft.idinternal.comments().count() expire_last_call(drafts[0]) @@ -968,8 +968,8 @@ class ExpireLastCallTestCase(django.test.TestCase): draft = InternetDraft.objects.get(filename="draft-ietf-mipshop-pfmipv6") self.assertEquals(draft.idinternal.cur_state.document_state_id, IDState.WAITING_FOR_WRITEUP) self.assertEquals(draft.idinternal.comments().count(), comments_before + 1) - self.assertEquals(len(mail_outbox), mailbox_before + 1) - self.assertTrue("Last Call Expired" in mail_outbox[-1]["Subject"]) + self.assertEquals(len(outbox), mailbox_before + 1) + self.assertTrue("Last Call Expired" in outbox[-1]["Subject"]) diff --git a/ietf/idrfc/testsREDESIGN.py b/ietf/idrfc/testsREDESIGN.py index 76af47f03..8fb0633d9 100644 --- a/ietf/idrfc/testsREDESIGN.py +++ b/ietf/idrfc/testsREDESIGN.py @@ -48,8 +48,8 @@ from redesign.group.models import * from redesign.person.models import * from ietf.iesg.models import TelechatDates from ietf.utils.test_utils import SimpleUrlTestCase, RealDatabaseTest, login_testing_unauthorized -from ietf.utils.test_runner import mail_outbox from ietf.utils.test_data import make_test_data +from ietf.utils.mail import outbox class IdRfcUrlTestCase(SimpleUrlTestCase): def testUrls(self): @@ -92,7 +92,7 @@ class ChangeStateTestCase(django.test.TestCase): # change state events_before = draft.docevent_set.count() - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) r = self.client.post(url, dict(state="review-e")) self.assertEquals(r.status_code, 302) @@ -101,9 +101,9 @@ class ChangeStateTestCase(django.test.TestCase): self.assertEquals(draft.iesg_state_id, "review-e") self.assertEquals(draft.docevent_set.count(), events_before + 1) self.assertTrue("State changed" in draft.docevent_set.all()[0].desc) - self.assertEquals(len(mail_outbox), mailbox_before + 2) - self.assertTrue("State Update Notice" in mail_outbox[-2]['Subject']) - self.assertTrue(draft.name in mail_outbox[-1]['Subject']) + self.assertEquals(len(outbox), mailbox_before + 2) + self.assertTrue("State Update Notice" in outbox[-2]['Subject']) + self.assertTrue(draft.name in outbox[-1]['Subject']) # check that we got a previous state now @@ -121,7 +121,7 @@ class ChangeStateTestCase(django.test.TestCase): self.client.login(remote_user="secretary") url = urlreverse('doc_change_state', kwargs=dict(name=draft.name)) - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) self.assertTrue(not draft.latest_event(type="changed_ballot_writeup_text")) r = self.client.post(url, dict(state="lc-req")) @@ -147,8 +147,8 @@ class ChangeStateTestCase(django.test.TestCase): self.assertTrue("Technical Summary" in e.text) # mail notice - self.assertTrue(len(mail_outbox) > mailbox_before) - self.assertTrue("Last Call:" in mail_outbox[-1]['Subject']) + self.assertTrue(len(outbox) > mailbox_before) + self.assertTrue("Last Call:" in outbox[-1]['Subject']) # comment self.assertTrue("Last call was requested" in draft.latest_event().desc) @@ -180,7 +180,7 @@ class EditInfoTestCase(django.test.TestCase): # edit info events_before = draft.docevent_set.count() - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) new_ad = Person.objects.get(name="Ad No1") @@ -202,8 +202,8 @@ class EditInfoTestCase(django.test.TestCase): self.assertEquals(draft.note, "New note") self.assertTrue(not draft.latest_event(TelechatDocEvent, type="telechat_date")) self.assertEquals(draft.docevent_set.count(), events_before + 4) - self.assertEquals(len(mail_outbox), mailbox_before + 1) - self.assertTrue(draft.name in mail_outbox[-1]['Subject']) + self.assertEquals(len(outbox), mailbox_before + 1) + self.assertTrue(draft.name in outbox[-1]['Subject']) def test_edit_telechat_date(self): draft = make_test_data() @@ -266,7 +266,7 @@ class EditInfoTestCase(django.test.TestCase): # add events_before = draft.docevent_set.count() - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) ad = Person.objects.get(name="Aread Irector") @@ -291,7 +291,7 @@ class EditInfoTestCase(django.test.TestCase): self.assertEquals(draft.docevent_set.count(), events_before + 4) events = list(draft.docevent_set.order_by('time', 'id')) self.assertEquals(events[-4].type, "started_iesg_process") - self.assertEquals(len(mail_outbox), mailbox_before) + self.assertEquals(len(outbox), mailbox_before) class ResurrectTestCase(django.test.TestCase): @@ -315,7 +315,7 @@ class ResurrectTestCase(django.test.TestCase): # request resurrect events_before = draft.docevent_set.count() - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) r = self.client.post(url, dict()) self.assertEquals(r.status_code, 302) @@ -326,8 +326,8 @@ class ResurrectTestCase(django.test.TestCase): self.assertTrue(e) self.assertEquals(e.by, Person.objects.get(name="Aread Irector")) self.assertTrue("Resurrection" in e.desc) - self.assertEquals(len(mail_outbox), mailbox_before + 1) - self.assertTrue("Resurrection" in mail_outbox[-1]['Subject']) + self.assertEquals(len(outbox), mailbox_before + 1) + self.assertTrue("Resurrection" in outbox[-1]['Subject']) def test_resurrect(self): draft = make_test_data() @@ -349,7 +349,7 @@ class ResurrectTestCase(django.test.TestCase): # request resurrect events_before = draft.docevent_set.count() - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) r = self.client.post(url, dict()) self.assertEquals(r.status_code, 302) @@ -358,7 +358,7 @@ class ResurrectTestCase(django.test.TestCase): self.assertEquals(draft.docevent_set.count(), events_before + 1) self.assertEquals(draft.latest_event().type, "completed_resurrect") self.assertEquals(draft.state_id, "active") - self.assertEquals(len(mail_outbox), mailbox_before + 1) + self.assertEquals(len(outbox), mailbox_before + 1) class AddCommentTestCase(django.test.TestCase): fixtures = ['names'] @@ -376,7 +376,7 @@ class AddCommentTestCase(django.test.TestCase): # request resurrect events_before = draft.docevent_set.count() - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) r = self.client.post(url, dict(comment="This is a test.")) self.assertEquals(r.status_code, 302) @@ -384,9 +384,9 @@ class AddCommentTestCase(django.test.TestCase): self.assertEquals(draft.docevent_set.count(), events_before + 1) self.assertEquals("This is a test.", draft.latest_event().desc) self.assertEquals("added_comment", draft.latest_event().type) - self.assertEquals(len(mail_outbox), mailbox_before + 1) - self.assertTrue("updated" in mail_outbox[-1]['Subject']) - self.assertTrue(draft.name in mail_outbox[-1]['Subject']) + self.assertEquals(len(outbox), mailbox_before + 1) + self.assertTrue("updated" in outbox[-1]['Subject']) + self.assertTrue(draft.name in outbox[-1]['Subject']) class EditPositionTestCase(django.test.TestCase): fixtures = ['names'] @@ -498,13 +498,13 @@ class EditPositionTestCase(django.test.TestCase): self.assertTrue(len(q('form input[name="cc"]')) > 0) # send - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) r = self.client.post(url, dict(cc="test@example.com", cc_state_change="1")) self.assertEquals(r.status_code, 302) - self.assertEquals(len(mail_outbox), mailbox_before + 1) - m = mail_outbox[-1] + self.assertEquals(len(outbox), mailbox_before + 1) + m = outbox[-1] self.assertTrue("COMMENT" in m['Subject']) self.assertTrue(draft.name in m['Subject']) self.assertTrue("Test!" in str(m)) @@ -526,7 +526,7 @@ class DeferBallotTestCase(django.test.TestCase): self.assertEquals(r.status_code, 200) # defer - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) r = self.client.post(url, dict()) self.assertEquals(r.status_code, 302) @@ -534,10 +534,10 @@ class DeferBallotTestCase(django.test.TestCase): draft = Document.objects.get(name=draft.name) self.assertEquals(draft.iesg_state_id, "defer") - self.assertEquals(len(mail_outbox), mailbox_before + 2) - self.assertTrue("State Update" in mail_outbox[-2]['Subject']) - self.assertTrue("Deferred" in mail_outbox[-1]['Subject']) - self.assertTrue(draft.file_tag() in mail_outbox[-1]['Subject']) + self.assertEquals(len(outbox), mailbox_before + 2) + self.assertTrue("State Update" in outbox[-2]['Subject']) + self.assertTrue("Deferred" in outbox[-1]['Subject']) + self.assertTrue(draft.file_tag() in outbox[-1]['Subject']) def test_undefer_ballot(self): draft = make_test_data() @@ -610,7 +610,7 @@ class BallotWriteupsTestCase(django.test.TestCase): r = self.client.post(url, dict(regenerate_last_call_text="1")) self.assertEquals(r.status_code, 200) - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) # send r = self.client.post(url, dict( @@ -618,9 +618,9 @@ class BallotWriteupsTestCase(django.test.TestCase): send_last_call_request="1")) draft = Document.objects.get(name=draft.name) self.assertEquals(draft.iesg_state_id, "lc-req") - self.assertEquals(len(mail_outbox), mailbox_before + 3) - self.assertTrue("Last Call" in mail_outbox[-1]['Subject']) - self.assertTrue(draft.name in mail_outbox[-1]['Subject']) + self.assertEquals(len(outbox), mailbox_before + 3) + self.assertTrue("Last Call" in outbox[-1]['Subject']) + self.assertTrue(draft.name in outbox[-1]['Subject']) def test_edit_ballot_writeup(self): draft = make_test_data() @@ -681,7 +681,7 @@ class BallotWriteupsTestCase(django.test.TestCase): e.text = "The document has been approved." e.save() - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) r = self.client.post(url, dict( ballot_writeup="This is a test.", @@ -690,8 +690,8 @@ class BallotWriteupsTestCase(django.test.TestCase): draft = Document.objects.get(name=draft.name) self.assertTrue(draft.latest_event(type="sent_ballot_announcement")) - self.assertEquals(len(mail_outbox), mailbox_before + 2) - issue_email = mail_outbox[-2] + self.assertEquals(len(outbox), mailbox_before + 2) + issue_email = outbox[-2] self.assertTrue("Evaluation:" in issue_email['Subject']) self.assertTrue("comment1" not in str(issue_email)) self.assertTrue("comment2" in str(issue_email)) @@ -753,17 +753,17 @@ class ApproveBallotTestCase(django.test.TestCase): self.assertEquals(len(q('.announcement pre:contains("Subject: Protocol Action")')), 1) # approve - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) r = self.client.post(url, dict()) self.assertEquals(r.status_code, 302) draft = Document.objects.get(name=draft.name) self.assertEquals(draft.iesg_state_id, "ann") - self.assertEquals(len(mail_outbox), mailbox_before + 4) - self.assertTrue("Protocol Action" in mail_outbox[-2]['Subject']) + self.assertEquals(len(outbox), mailbox_before + 4) + self.assertTrue("Protocol Action" in outbox[-2]['Subject']) # the IANA copy - self.assertTrue("Protocol Action" in mail_outbox[-1]['Subject']) + self.assertTrue("Protocol Action" in outbox[-1]['Subject']) def test_disapprove_ballot(self): draft = make_test_data() @@ -774,15 +774,15 @@ class ApproveBallotTestCase(django.test.TestCase): login_testing_unauthorized(self, "secretary", url) # disapprove (the Martians aren't going to be happy) - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) r = self.client.post(url, dict()) self.assertEquals(r.status_code, 302) draft = Document.objects.get(name=draft.name) self.assertEquals(draft.iesg_state_id, "dead") - self.assertEquals(len(mail_outbox), mailbox_before + 3) - self.assertTrue("NOT be published" in str(mail_outbox[-1])) + self.assertEquals(len(outbox), mailbox_before + 3) + self.assertTrue("NOT be published" in str(outbox[-1])) class MakeLastCallTestCase(django.test.TestCase): fixtures = ['names'] @@ -802,7 +802,7 @@ class MakeLastCallTestCase(django.test.TestCase): self.assertEquals(len(q('input[name=last_call_sent_date]')), 1) # make last call - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) expire_date = q('input[name=last_call_expiration_date]')[0].get("value") @@ -815,11 +815,11 @@ class MakeLastCallTestCase(django.test.TestCase): draft = Document.objects.get(name=draft.name) self.assertEquals(draft.iesg_state.slug, "lc") self.assertEquals(draft.latest_event(LastCallDocEvent, "sent_last_call").expires.strftime("%Y-%m-%d"), expire_date) - self.assertEquals(len(mail_outbox), mailbox_before + 4) + self.assertEquals(len(outbox), mailbox_before + 4) - self.assertTrue("Last Call" in mail_outbox[-4]['Subject']) + self.assertTrue("Last Call" in outbox[-4]['Subject']) # the IANA copy - self.assertTrue("Last Call" in mail_outbox[-3]['Subject']) + self.assertTrue("Last Call" in outbox[-3]['Subject']) class ExpireIDsTestCase(django.test.TestCase): fixtures = ['names'] @@ -881,13 +881,13 @@ class ExpireIDsTestCase(django.test.TestCase): self.assertEquals(len(list(get_soon_to_expire_ids(14))), 1) # test send warning - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) send_expire_warning_for_id(draft) - self.assertEquals(len(mail_outbox), mailbox_before + 1) - self.assertTrue("aread@ietf.org" in str(mail_outbox[-1])) # author - self.assertTrue("wgchairman@ietf.org" in str(mail_outbox[-1])) + self.assertEquals(len(outbox), mailbox_before + 1) + self.assertTrue("aread@ietf.org" in str(outbox[-1])) # author + self.assertTrue("wgchairman@ietf.org" in str(outbox[-1])) def test_expire_ids(self): from ietf.idrfc.expire import get_expired_ids, send_expire_notice_for_id, expire_id, INTERNET_DRAFT_DAYS_TO_EXPIRE @@ -917,12 +917,12 @@ class ExpireIDsTestCase(django.test.TestCase): self.assertEquals(len(list(get_expired_ids())), 1) # test notice - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) send_expire_notice_for_id(draft) - self.assertEquals(len(mail_outbox), mailbox_before + 1) - self.assertTrue("expired" in mail_outbox[-1]["Subject"]) + self.assertEquals(len(outbox), mailbox_before + 1) + self.assertTrue("expired" in outbox[-1]["Subject"]) # test expiry txt = "%s-%s.txt" % (draft.name, draft.rev) @@ -1061,7 +1061,7 @@ class ExpireLastCallTestCase(django.test.TestCase): self.assertEquals(len(drafts), 1) # expire it - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) events_before = draft.docevent_set.count() expire_last_call(drafts[0]) @@ -1069,8 +1069,8 @@ class ExpireLastCallTestCase(django.test.TestCase): draft = Document.objects.get(name=draft.name) self.assertEquals(draft.iesg_state.slug, "writeupw") self.assertEquals(draft.docevent_set.count(), events_before + 1) - self.assertEquals(len(mail_outbox), mailbox_before + 1) - self.assertTrue("Last Call Expired" in mail_outbox[-1]["Subject"]) + self.assertEquals(len(outbox), mailbox_before + 1) + self.assertTrue("Last Call Expired" in outbox[-1]["Subject"]) diff --git a/ietf/ietfworkflows/tests.py b/ietf/ietfworkflows/tests.py index 932b2c4ce..46fd61953 100644 --- a/ietf/ietfworkflows/tests.py +++ b/ietf/ietfworkflows/tests.py @@ -8,8 +8,8 @@ from StringIO import StringIO from pyquery import PyQuery from ietf.utils.test_utils import login_testing_unauthorized -from ietf.utils.test_runner import mail_outbox from ietf.utils.test_data import make_test_data +from ietf.utils.mail import outbox if settings.USE_DB_REDESIGN_PROXY_CLASSES: from redesign.person.models import Person, Email @@ -39,7 +39,7 @@ class EditStreamInfoTestCase(django.test.TestCase): self.assertEquals(len(q('form select[name="wg"] option')), 1) # we can only select "mars" # adopt in mars WG - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) events_before = draft.docevent_set.count() r = self.client.post(url, dict(comment="some comment", @@ -51,10 +51,10 @@ class EditStreamInfoTestCase(django.test.TestCase): self.assertEquals(draft.group.acronym, "mars") self.assertEquals(draft.stream_id, "ietf") self.assertEquals(draft.docevent_set.count() - events_before, 4) - self.assertEquals(len(mail_outbox), mailbox_before + 1) - self.assertTrue("state changed" in mail_outbox[-1]["Subject"].lower()) - self.assertTrue("wgchairman@ietf.org" in unicode(mail_outbox[-1])) - self.assertTrue("wgdelegate@ietf.org" in unicode(mail_outbox[-1])) + self.assertEquals(len(outbox), mailbox_before + 1) + self.assertTrue("state changed" in outbox[-1]["Subject"].lower()) + self.assertTrue("wgchairman@ietf.org" in unicode(outbox[-1])) + self.assertTrue("wgdelegate@ietf.org" in unicode(outbox[-1])) def test_set_tags(self): draft = make_test_data() @@ -75,7 +75,7 @@ class EditStreamInfoTestCase(django.test.TestCase): self.assertEquals(len(q('form input[type=submit][name=only_tags]')), 1) # set tags - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) events_before = draft.docevent_set.count() r = self.client.post(url, dict(comment="some comment", @@ -93,11 +93,11 @@ class EditStreamInfoTestCase(django.test.TestCase): self.assertEquals(draft.tags.filter(slug="need-aut").count(), 1) self.assertEquals(draft.tags.filter(slug="sheph-u").count(), 1) self.assertEquals(draft.docevent_set.count() - events_before, 2) - self.assertEquals(len(mail_outbox), mailbox_before + 1) - self.assertTrue("tags changed" in mail_outbox[-1]["Subject"].lower()) - self.assertTrue("wgchairman@ietf.org" in unicode(mail_outbox[-1])) - self.assertTrue("wgdelegate@ietf.org" in unicode(mail_outbox[-1])) - self.assertTrue("plain@example.com" in unicode(mail_outbox[-1])) + self.assertEquals(len(outbox), mailbox_before + 1) + self.assertTrue("tags changed" in outbox[-1]["Subject"].lower()) + self.assertTrue("wgchairman@ietf.org" in unicode(outbox[-1])) + self.assertTrue("wgdelegate@ietf.org" in unicode(outbox[-1])) + self.assertTrue("plain@example.com" in unicode(outbox[-1])) def test_set_state(self): draft = make_test_data() @@ -117,7 +117,7 @@ class EditStreamInfoTestCase(django.test.TestCase): # set state new_state = State.objects.get(type="draft-stream-%s" % draft.stream_id, slug="parked") - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) events_before = draft.docevent_set.count() r = self.client.post(url, dict(comment="some comment", @@ -134,10 +134,10 @@ class EditStreamInfoTestCase(django.test.TestCase): self.assertEquals(len(reminder), 1) due = datetime.datetime.now() + datetime.timedelta(weeks=10) self.assertTrue(due - datetime.timedelta(days=1) <= reminder[0].due <= due + datetime.timedelta(days=1)) - self.assertEquals(len(mail_outbox), mailbox_before + 1) - self.assertTrue("state changed" in mail_outbox[-1]["Subject"].lower()) - self.assertTrue("wgchairman@ietf.org" in unicode(mail_outbox[-1])) - self.assertTrue("wgdelegate@ietf.org" in unicode(mail_outbox[-1])) + self.assertEquals(len(outbox), mailbox_before + 1) + self.assertTrue("state changed" in outbox[-1]["Subject"].lower()) + self.assertTrue("wgchairman@ietf.org" in unicode(outbox[-1])) + self.assertTrue("wgdelegate@ietf.org" in unicode(outbox[-1])) def test_set_stream(self): draft = make_test_data() @@ -152,7 +152,7 @@ class EditStreamInfoTestCase(django.test.TestCase): self.assertEquals(len(q('select[name=stream]')), 1) # set state - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) events_before = draft.docevent_set.count() r = self.client.post(url, dict(comment="some comment", @@ -163,10 +163,10 @@ class EditStreamInfoTestCase(django.test.TestCase): draft = Document.objects.get(pk=draft.pk) self.assertEquals(draft.stream_id, "irtf") self.assertEquals(draft.docevent_set.count() - events_before, 2) - self.assertEquals(len(mail_outbox), mailbox_before + 1) - self.assertTrue("stream changed" in mail_outbox[-1]["Subject"].lower()) - self.assertTrue("wgchairman@ietf.org" in unicode(mail_outbox[-1])) - self.assertTrue("wgdelegate@ietf.org" in unicode(mail_outbox[-1])) + self.assertEquals(len(outbox), mailbox_before + 1) + self.assertTrue("stream changed" in outbox[-1]["Subject"].lower()) + self.assertTrue("wgchairman@ietf.org" in unicode(outbox[-1])) + self.assertTrue("wgdelegate@ietf.org" in unicode(outbox[-1])) if not settings.USE_DB_REDESIGN_PROXY_CLASSES: # the above tests only work with the new schema diff --git a/ietf/ipr/tests.py b/ietf/ipr/tests.py index 9cda36100..c37dc87bf 100644 --- a/ietf/ipr/tests.py +++ b/ietf/ipr/tests.py @@ -35,7 +35,7 @@ import unittest from django.test.client import Client from django.conf import settings from ietf.utils.test_utils import SimpleUrlTestCase, RealDatabaseTest, canonicalize_feed, canonicalize_sitemap -import ietf.utils.test_runner as test_runner +from ietf.utils.mail import outbox, empty_outbox class IprUrlTestCase(SimpleUrlTestCase): def testUrls(self): @@ -77,12 +77,12 @@ class NewIprTestCase(unittest.TestCase,RealDatabaseTest): def testNewSpecific(self): print " Testing IPR disclosure submission" - test_runner.mail_outbox = [] + empty_outbox c = Client() response = c.post('/ipr/new-specific/', self.SPECIFIC_DISCLOSURE) self.assertEquals(response.status_code, 200) self.assert_("Your IPR disclosure has been submitted" in response.content) - self.assertEquals(len(test_runner.mail_outbox), 1) + self.assertEquals(len(outbox), 1) print "OK (1 email found in test outbox)" diff --git a/ietf/liaisons/tests.py b/ietf/liaisons/tests.py index 6724a624f..65c32e662 100644 --- a/ietf/liaisons/tests.py +++ b/ietf/liaisons/tests.py @@ -8,8 +8,8 @@ from StringIO import StringIO from pyquery import PyQuery from ietf.utils.test_utils import SimpleUrlTestCase, canonicalize_feed, canonicalize_sitemap, login_testing_unauthorized -from ietf.utils.test_runner import mail_outbox from ietf.utils.test_data import make_test_data +from ietf.utils.mail import outbox class LiaisonsUrlTestCase(SimpleUrlTestCase): def testUrls(self): @@ -149,14 +149,14 @@ class LiaisonManagementTestCase(django.test.TestCase): self.assertEquals(len(q('form input[name=do_approval]')), 1) # approve - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) r = self.client.post(url, dict(do_approval="1")) self.assertEquals(r.status_code, 302) liaison = LiaisonStatement.objects.get(id=liaison.id) self.assertTrue(liaison.approved) - self.assertEquals(len(mail_outbox), mailbox_before + 1) - self.assertTrue("Liaison Statement" in mail_outbox[-1]["Subject"]) + self.assertEquals(len(outbox), mailbox_before + 1) + self.assertTrue("Liaison Statement" in outbox[-1]["Subject"]) def test_edit_liaison(self): make_test_data() @@ -230,7 +230,7 @@ class LiaisonManagementTestCase(django.test.TestCase): self.assertEquals(len(q('form textarea[name=body]')), 1) # add new - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) test_file = StringIO("hello world") test_file.name = "unnamed" from_group = Group.objects.filter(type="sdo")[0] @@ -283,8 +283,8 @@ class LiaisonManagementTestCase(django.test.TestCase): test_file.seek(0) self.assertEquals(written_content, test_file.read()) - self.assertEquals(len(mail_outbox), mailbox_before + 1) - self.assertTrue("Liaison Statement" in mail_outbox[-1]["Subject"]) + self.assertEquals(len(outbox), mailbox_before + 1) + self.assertTrue("Liaison Statement" in outbox[-1]["Subject"]) def test_add_outgoing_liaison(self): make_test_data() @@ -300,7 +300,7 @@ class LiaisonManagementTestCase(django.test.TestCase): self.assertEquals(len(q('form textarea[name=body]')), 1) # add new - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) test_file = StringIO("hello world") test_file.name = "unnamed" from_group = Group.objects.get(acronym="mars") @@ -357,8 +357,8 @@ class LiaisonManagementTestCase(django.test.TestCase): test_file.seek(0) self.assertEquals(written_content, test_file.read()) - self.assertEquals(len(mail_outbox), mailbox_before + 1) - self.assertTrue("Liaison Statement" in mail_outbox[-1]["Subject"]) + self.assertEquals(len(outbox), mailbox_before + 1) + self.assertTrue("Liaison Statement" in outbox[-1]["Subject"]) # try adding statement to non-predefined organization r = self.client.post(url, @@ -391,10 +391,10 @@ class LiaisonManagementTestCase(django.test.TestCase): from ietf.liaisons.mails import send_sdo_reminder - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) send_sdo_reminder(Group.objects.filter(type="sdo")[0]) - self.assertEquals(len(mail_outbox), mailbox_before + 1) - self.assertTrue("authorized individuals" in mail_outbox[-1]["Subject"]) + self.assertEquals(len(outbox), mailbox_before + 1) + self.assertTrue("authorized individuals" in outbox[-1]["Subject"]) def test_send_liaison_deadline_reminder(self): make_test_data() @@ -405,18 +405,18 @@ class LiaisonManagementTestCase(django.test.TestCase): l = LiaisonDetail.objects.all()[0] - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) possibly_send_deadline_reminder(l) - self.assertEquals(len(mail_outbox), mailbox_before + 1) - self.assertTrue("deadline" in mail_outbox[-1]["Subject"]) + self.assertEquals(len(outbox), mailbox_before + 1) + self.assertTrue("deadline" in outbox[-1]["Subject"]) # try pushing the deadline l.deadline = l.deadline + datetime.timedelta(days=30) l.save() - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) possibly_send_deadline_reminder(l) - self.assertEquals(len(mail_outbox), mailbox_before) + self.assertEquals(len(outbox), mailbox_before) if not settings.USE_DB_REDESIGN_PROXY_CLASSES: diff --git a/ietf/submit/tests.py b/ietf/submit/tests.py index 4e3100082..ee05d79a9 100644 --- a/ietf/submit/tests.py +++ b/ietf/submit/tests.py @@ -8,8 +8,8 @@ from StringIO import StringIO from pyquery import PyQuery from ietf.utils.test_utils import login_testing_unauthorized -from ietf.utils.test_runner import mail_outbox from ietf.utils.test_data import make_test_data +from ietf.utils.mail import outbox from redesign.person.models import Person, Email from redesign.group.models import Group, Role @@ -103,14 +103,14 @@ class SubmitTestCase(django.test.TestCase): supply_submitter_url = self.do_submission(name, rev) # supply submitter info, then draft should be in and ready for approval - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) r = self.supply_submitter(name, supply_submitter_url) self.assertEquals(r.status_code, 302) status_url = r["Location"] - self.assertEquals(len(mail_outbox), mailbox_before + 1) - self.assertTrue("New draft waiting for approval" in mail_outbox[-1]["Subject"]) - self.assertTrue(name in mail_outbox[-1]["Subject"]) + self.assertEquals(len(outbox), mailbox_before + 1) + self.assertTrue("New draft waiting for approval" in outbox[-1]["Subject"]) + self.assertTrue(name in outbox[-1]["Subject"]) # as chair of WG, we should see approval button self.client.login(remote_user="marschairman") @@ -122,7 +122,7 @@ class SubmitTestCase(django.test.TestCase): self.assertEquals(len(approve_submit), 1) # approve submission - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) approve_url = approve_submit.parents("form").attr("action") r = self.client.post(approve_url, dict()) self.assertEquals(r.status_code, 302) @@ -140,12 +140,12 @@ class SubmitTestCase(django.test.TestCase): self.assertEquals(draft.authors.count(), 1) self.assertEquals(draft.authors.all()[0].get_name(), "Test Name") self.assertEquals(draft.authors.all()[0].address, "testname@example.com") - self.assertEquals(len(mail_outbox), mailbox_before + 2) - self.assertTrue((u"I-D Action: %s" % name) in mail_outbox[-2]["Subject"]) - self.assertTrue("Test Name" in unicode(mail_outbox[-2])) - self.assertTrue("New Version Notification" in mail_outbox[-1]["Subject"]) - self.assertTrue(name in unicode(mail_outbox[-1])) - self.assertTrue("mars" in unicode(mail_outbox[-1])) + self.assertEquals(len(outbox), mailbox_before + 2) + self.assertTrue((u"I-D Action: %s" % name) in outbox[-2]["Subject"]) + self.assertTrue("Test Name" in unicode(outbox[-2])) + self.assertTrue("New Version Notification" in outbox[-1]["Subject"]) + self.assertTrue(name in unicode(outbox[-1])) + self.assertTrue("mars" in unicode(outbox[-1])) def test_submit_existing(self): # submit new revision of existing -> supply submitter info -> confirm @@ -165,14 +165,14 @@ class SubmitTestCase(django.test.TestCase): supply_submitter_url = self.do_submission(name, rev) # supply submitter info, then we get a confirmation email - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) r = self.supply_submitter(name, supply_submitter_url) self.assertEquals(r.status_code, 200) self.assertTrue("Your submission is pending email authentication" in r.content) - self.assertEquals(len(mail_outbox), mailbox_before + 1) - confirmation = mail_outbox[-1] + self.assertEquals(len(outbox), mailbox_before + 1) + confirmation = outbox[-1] self.assertTrue("Confirmation for" in confirmation["Subject"]) self.assertTrue(name in confirmation["Subject"]) @@ -191,7 +191,7 @@ class SubmitTestCase(django.test.TestCase): self.assertEquals(len(q('input[type=submit][value=Auto-Post]')), 1) # confirm - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) r = self.client.post(confirm_url) self.assertEquals(r.status_code, 200) self.assertTrue('Authorization key accepted' in r.content) @@ -209,17 +209,17 @@ class SubmitTestCase(django.test.TestCase): self.assertEquals(draft.authors.count(), 1) self.assertEquals(draft.authors.all()[0].get_name(), "Test Name") self.assertEquals(draft.authors.all()[0].address, "testname@example.com") - self.assertEquals(len(mail_outbox), mailbox_before + 3) - self.assertTrue((u"I-D Action: %s" % name) in mail_outbox[-3]["Subject"]) - self.assertTrue("Test Name" in unicode(mail_outbox[-3])) - self.assertTrue("New Version Notification" in mail_outbox[-2]["Subject"]) - self.assertTrue(name in unicode(mail_outbox[-2])) - self.assertTrue("mars" in unicode(mail_outbox[-2])) - self.assertTrue(draft.ad.email_address().address in unicode(mail_outbox[-2])) - self.assertTrue(ballot_position.ad.email_address().address in unicode(mail_outbox[-2])) - self.assertTrue("New Version Notification" in mail_outbox[-1]["Subject"]) - self.assertTrue(name in unicode(mail_outbox[-1])) - self.assertTrue("mars" in unicode(mail_outbox[-1])) + self.assertEquals(len(outbox), mailbox_before + 3) + self.assertTrue((u"I-D Action: %s" % name) in outbox[-3]["Subject"]) + self.assertTrue("Test Name" in unicode(outbox[-3])) + self.assertTrue("New Version Notification" in outbox[-2]["Subject"]) + self.assertTrue(name in unicode(outbox[-2])) + self.assertTrue("mars" in unicode(outbox[-2])) + self.assertTrue(draft.ad.email_address().address in unicode(outbox[-2])) + self.assertTrue(ballot_position.ad.email_address().address in unicode(outbox[-2])) + self.assertTrue("New Version Notification" in outbox[-1]["Subject"]) + self.assertTrue(name in unicode(outbox[-1])) + self.assertTrue("mars" in unicode(outbox[-1])) def test_cancel_submission(self): # submit -> cancel @@ -270,7 +270,7 @@ class SubmitTestCase(django.test.TestCase): self.assertEquals(len(q('input[name=title]')), 1) # edit - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) creation_date = datetime.date.today() - datetime.timedelta(days=-3) r = self.client.post(edit_url, dict(title="some title", @@ -305,9 +305,9 @@ class SubmitTestCase(django.test.TestCase): self.assertEquals(authors.get(author_order=2).first_name, "Person 2") self.assertEquals(authors.get(author_order=2).email_address, "person2@example.com") - self.assertEquals(len(mail_outbox), mailbox_before + 1) - self.assertTrue("Manual Post Requested" in mail_outbox[-1]["Subject"]) - self.assertTrue(name in mail_outbox[-1]["Subject"]) + self.assertEquals(len(outbox), mailbox_before + 1) + self.assertTrue("Manual Post Requested" in outbox[-1]["Subject"]) + self.assertTrue(name in outbox[-1]["Subject"]) def test_request_full_url(self): # submit -> request full URL to be sent @@ -331,13 +331,13 @@ class SubmitTestCase(django.test.TestCase): request_url = request_button.parents("form").attr("action") # request URL to be sent - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) r = self.client.post(request_url) self.assertEquals(r.status_code, 200) - self.assertEquals(len(mail_outbox), mailbox_before + 1) - self.assertTrue("Full URL for managing submission" in mail_outbox[-1]["Subject"]) - self.assertTrue(name in mail_outbox[-1]["Subject"]) + self.assertEquals(len(outbox), mailbox_before + 1) + self.assertTrue("Full URL for managing submission" in outbox[-1]["Subject"]) + self.assertTrue(name in outbox[-1]["Subject"]) if not settings.USE_DB_REDESIGN_PROXY_CLASSES: diff --git a/ietf/utils/mail.py b/ietf/utils/mail.py index e99071fb9..8ece880fc 100644 --- a/ietf/utils/mail.py +++ b/ietf/utils/mail.py @@ -58,7 +58,7 @@ def send_smtp(msg, bcc=None): log("No addressees for email from '%s', subject '%s'. Nothing sent." % (frm, msg.get('Subject', '[no subject]'))) else: if test_mode: - outbox.append((msg, to, msg.as_string())) + outbox.append(msg) return server = None try: diff --git a/ietf/utils/test_runner.py b/ietf/utils/test_runner.py index 2d0cd430b..02da379d2 100644 --- a/ietf/utils/test_runner.py +++ b/ietf/utils/test_runner.py @@ -35,8 +35,9 @@ import socket from django.conf import settings from django.template import TemplateDoesNotExist +import ietf.utils.mail +from ietf.utils.mail import outbox as outbox -mail_outbox = [] loaded_templates = set() test_database_name = None old_destroy = None @@ -58,10 +59,6 @@ def safe_destroy_0_1(*args, **kwargs): settings.DATABASE_NAME = test_database_name return old_destroy(*args, **kwargs) -def test_send_smtp(msg, bcc=None): - global mail_outbox - mail_outbox.append(msg) - def template_coverage_loader(template_name, dirs): loaded_templates.add(str(template_name)) raise TemplateDoesNotExist @@ -88,8 +85,6 @@ def run_tests(*args, **kwargs): # against the production database if socket.gethostname().startswith("core3"): raise EnvironmentError("Refusing to run tests on core3") - import ietf.utils.mail - ietf.utils.mail.send_smtp = test_send_smtp ietf.utils.mail.test_mode = True run_tests_1(*args, **kwargs) diff --git a/ietf/wgchairs/tests.py b/ietf/wgchairs/tests.py index b0e7d94b7..721b3bb9f 100644 --- a/ietf/wgchairs/tests.py +++ b/ietf/wgchairs/tests.py @@ -8,8 +8,8 @@ from StringIO import StringIO from pyquery import PyQuery from ietf.utils.test_utils import login_testing_unauthorized -from ietf.utils.test_runner import mail_outbox from ietf.utils.test_data import make_test_data +from ietf.utils.mail import outbox if settings.USE_DB_REDESIGN_PROXY_CLASSES: from redesign.person.models import Person, Email @@ -66,13 +66,13 @@ class ManageDelegatesTestCase(django.test.TestCase): self.assertEquals(len(q('form input[type=submit][value*="Send email"]')), 1) # we get back a warning and offer to send email, do that - mailbox_before = len(mail_outbox) + mailbox_before = len(outbox) r = self.client.post(url, dict(email="unknown@example.com", form_type="notexist")) self.assertEquals(r.status_code, 200) self.assertTrue("Email sent" in r.content) - self.assertEquals(len(mail_outbox), mailbox_before + 3) + self.assertEquals(len(outbox), mailbox_before + 3) def test_add_delegate(self): make_test_data()