Apply 16_update_debian.patch
[mspang/vmailman.git] / tests / test_smtp.py
1 # Copyright (C) 2003 by the Free Software Foundation, Inc.
2 #
3 # This program is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU General Public License
5 # as published by the Free Software Foundation; either version 2
6 # of the License, or (at your option) any later version.
7 #
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 # GNU General Public License for more details.
12 #
13 # You should have received a copy of the GNU General Public License
14 # along with this program; if not, write to the Free Software
15 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16
17 """Unit tests for SMTPDirect and (eventually perhaps) Sendmail.
18 """
19
20 import email
21 import unittest
22 import thread
23
24 from Mailman import mm_cfg
25 from Mailman.Handlers import SMTPDirect
26
27 from EmailBase import EmailBase
28
29 TESTPORT = 3925
30
31
32 \f
33 class TestSMTPDirect(EmailBase):
34     def setUp(self):
35         self._origport = mm_cfg.SMTPPORT
36         self._sessions = mm_cfg.SMTP_MAX_SESSIONS_PER_CONNECTION
37         mm_cfg.SMTPPORT = TESTPORT
38         mm_cfg.SMTP_MAX_SESSIONS_PER_CONNECTION = 1
39         EmailBase.setUp(self)
40
41     def tearDown(self):
42         mm_cfg.SMTPPORT = self._origport
43         mm_cfg.SMTP_MAX_SESSIONS_PER_CONNECTION = self._sessions
44         EmailBase.tearDown(self)
45
46     def test_disconnect_midsession(self):
47         msgdata = {'recips': ['aperson@dom.ain', 'bperson@dom.ain'],
48                    'personalize': 1,
49                    }
50         self._mlist.personalize = 1
51         msg = email.message_from_string("""
52 From: cperson@dom.ain
53 To: _xtest@dom.ain
54 Subject: testing
55
56 testing
57 """)
58         id = thread.start_new_thread(self._readmsg, ())
59         SMTPDirect.process(self._mlist, msg, msgdata)
60
61
62 \f
63 def suite():
64     suite = unittest.TestSuite()
65     #suite.addTest(unittest.makeSuite(TestSMTPDirect))
66     return suite
67
68
69 if __name__ == '__main__':
70     unittest.main(defaultTest='suite')