Re: [Mailman-Developers] (no subject)
On Jan 21, 2013, at 10:40 AM, Sandesh Agrawal wrote:
I am writing a test for lmtp runner as follows:
def test_function(self): self._lmtp.sendmail(.........) messages = get_queue_messages('in') self.assertEqual(len(messages), 1)
self._lmtp.sendmail(.........) messages = get_queue_messages('in') self.assertEqual(len(messages), 1)
and the test passes successfully , but shouldn't the second self.assertEqual( ) fail because number of messages in 'in' should now be 2 .
One thing you can do when running tests that use runners in subprocesses (e.g. spawned by TestableMaster), is pass in the -e option to bin/test so that logging in the subprocesses is enabled. Such logging is suppressed by default because of the noise, but enabling it lets you see if an exception occurs in a runner that might only show up in the logs.
Might be, self._lmtp is creating new lmtp instance each time it executes sendmail( ) , or is there something else ?
I don't think it does. My first guess is that there's an exception getting masked.
Cheers, -Barry
Might be, self._lmtp is creating new lmtp instance each time it executes sendmail( ) , or is there something else ?
I don't think it does. My first guess is that there's an exception getting masked.
I tried ./bin/test along with -e option , and did not see any of the exceptions being masked in lmtp runner process.
def test_function(self): self._lmtp.sendmail(.........) messages = get_queue_messages('in') self.assertEqual(len(messages), 1)
self._lmtp.sendmail(.........) messages = get_queue_messages('in') self.assertEqual(len(messages), 1)
I tried verifying the header of both the messages using self.assertEqual(messages[0].msg['Message-ID'], '<message_header>') and found out that both the messages sent from the test_func(self) are being recieved by the lmtp runner, but at any moment of time, there is only one message in the queue that is the latest one received.
I tried sending multiple message by attaching smtplib.LMTP() instance to the lmtp runner and was successful, as there were multiple messages that i sent were present in the queue. But doing the same thing in test_func() leads to only the latest message being left in the queue thus showing len(messages)=1 always.
I have fixed the bug regarding lmtp runner should reject messages with duplcate Message-ID, and just want to write a test for it by sending two messages with same ID.
Cheers, Sandesh
participants (2)
-
Barry Warsaw
-
Sandesh Agrawal