2929from ietf .group .models import Group
3030from ietf .submit .tests import submission_file
3131from ietf .utils .draft import Draft , getmeta
32- from ietf .utils .mail import send_mail_text , send_mail_mime , outbox
32+ from ietf .utils .mail import send_mail_preformatted , send_mail_text , send_mail_mime , outbox
3333from ietf .utils .management .commands import pyflakes
3434from ietf .utils .test_data import make_test_data
3535from ietf .utils .test_runner import get_template_paths , set_coverage_checking
@@ -54,6 +54,66 @@ def test_pyflakes(self):
5454 warnings = pyflakes .checkPaths ([path ], verbosity = 0 )
5555 self .assertEqual ([], [str (w ) for w in warnings ])
5656
57+ class SendingMail (TestCase ):
58+
59+ def test_send_mail_preformatted (self ):
60+ msg = """To: to1@example.com, to2@example.com
61+ From: from1@example.com, from2@example.com
62+ Cc: cc1@example.com, cc2@example.com
63+ Bcc: bcc1@example.com, bcc2@example.com
64+ Subject: subject
65+
66+ body
67+ """
68+ send_mail_preformatted (None , msg , {}, {})
69+ recv = outbox [- 1 ]
70+ self .assertEqual (recv ['To' ], '<to1@example.com>, <to2@example.com>' )
71+ self .assertEqual (recv ['From' ], 'from1@example.com, from2@example.com' )
72+ self .assertEqual (recv ['Cc' ], 'cc1@example.com, cc2@example.com' )
73+ self .assertEqual (recv ['Bcc' ], None )
74+ self .assertEqual (recv ['Subject' ], 'subject' )
75+ self .assertEqual (recv .get_payload (), 'body\n ' )
76+
77+ override = {
78+ 'To' : 'oto1@example.net, oto2@example.net' ,
79+ 'From' : 'ofrom1@example.net, ofrom2@example.net' ,
80+ 'Cc' : 'occ1@example.net, occ2@example.net' ,
81+ 'Subject' : 'osubject' ,
82+ }
83+ send_mail_preformatted (request = None , preformatted = msg , extra = {}, override = override )
84+ recv = outbox [- 1 ]
85+ self .assertEqual (recv ['To' ], '<oto1@example.net>, <oto2@example.net>' )
86+ self .assertEqual (recv ['From' ], 'ofrom1@example.net, ofrom2@example.net' )
87+ self .assertEqual (recv ['Cc' ], 'occ1@example.net, occ2@example.net' )
88+ self .assertEqual (recv ['Bcc' ], None )
89+ self .assertEqual (recv ['Subject' ], 'osubject' )
90+ self .assertEqual (recv .get_payload (), 'body\n ' )
91+
92+ override = {
93+ 'To' : ['<oto1@example.net>' , 'oto2@example.net' ],
94+ 'From' : ['<ofrom1@example.net>' , 'ofrom2@example.net' ],
95+ 'Cc' : ['<occ1@example.net>' , 'occ2@example.net' ],
96+ 'Subject' : 'osubject' ,
97+ }
98+ send_mail_preformatted (request = None , preformatted = msg , extra = {}, override = override )
99+ recv = outbox [- 1 ]
100+ self .assertEqual (recv ['To' ], '<oto1@example.net>, <oto2@example.net>' )
101+ self .assertEqual (recv ['From' ], '<ofrom1@example.net>, ofrom2@example.net' )
102+ self .assertEqual (recv ['Cc' ], '<occ1@example.net>, occ2@example.net' )
103+ self .assertEqual (recv ['Bcc' ], None )
104+ self .assertEqual (recv ['Subject' ], 'osubject' )
105+ self .assertEqual (recv .get_payload (), 'body\n ' )
106+
107+ extra = {'Fuzz' : 'bucket' }
108+ send_mail_preformatted (request = None , preformatted = msg , extra = extra , override = {})
109+ recv = outbox [- 1 ]
110+ self .assertEqual (recv ['Fuzz' ], 'bucket' )
111+
112+ extra = {'Fuzz' : ['bucket' ,'monger' ]}
113+ send_mail_preformatted (request = None , preformatted = msg , extra = extra , override = {})
114+ recv = outbox [- 1 ]
115+ self .assertEqual (recv ['Fuzz' ], 'bucket, monger' )
116+
57117class TestSMTPServer (TestCase ):
58118
59119 def test_address_rejected (self ):
0 commit comments