Update of /cvsroot/spambayes/spambayes/spambayes/test
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29996/spambayes/test
Modified Files:
test_message.py
Log Message:
Add Python 2.2 compatibility.
Add tests for delNotations.
Add a test for inserting an exception header in a message without a header/body
separator.
Index: test_message.py
===================================================================
RCS file: /cvsroot/spambayes/spambayes/spambayes/test/test_message.py,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** test_message.py 22 Nov 2004 00:22:55 -0000 1.1
--- test_message.py 8 Dec 2004 03:31:35 -0000 1.2
***************
*** 21,25 ****
# Richie's hammer.py script has code for generating any number of
# randomly composed email messages.
! from test_sb_server import good1, spam1
TEMP_PICKLE_NAME = os.path.join(os.path.dirname(__file__), "temp.pik")
--- 21,31 ----
# Richie's hammer.py script has code for generating any number of
# randomly composed email messages.
! from test_sb_server import good1, spam1, malformed1
!
! try:
! __file__
! except NameError:
! # Python 2.2 compatibility.
! __file__ = sys.argv[0]
TEMP_PICKLE_NAME = os.path.join(os.path.dirname(__file__), "temp.pik")
***************
*** 453,456 ****
--- 459,522 ----
self.assert_(header not in self.msg.keys())
+ def test_delNotations(self):
+ # Add each type of notation to each header and check that it
+ # is removed.
+ for headername in ["subject", "to"]:
+ for disp in (self.ham, self.spam, self.unsure):
+ # Add a notation to the header
+ header = self.msg[headername]
+ self.assert_(disp not in header)
+ options["Headers", "notate_%s" % (headername,)] = \
+ (self.ham, self.unsure, self.spam)
+ prob = {self.ham:self.g_prob, self.spam:self.s_prob,
+ self.unsure:self.u_prob}[disp]
+ self.msg.addSBHeaders(prob, self.clues)
+ self.assert_(disp in self.msg[headername])
+ # Remove it
+ self.msg.delNotations()
+ self.assertEqual(self.msg[headername], header)
+
+ def test_delNotations_missing(self):
+ # Check that nothing is removed if the disposition is not
+ # there.
+ for headername in ["subject", "to"]:
+ for disp in (self.ham, self.spam, self.unsure):
+ # Add a notation to the header
+ header = self.msg[headername]
+ self.assert_(disp not in header)
+ options["Headers", "notate_%s" % (headername,)] = ()
+ prob = {self.ham:self.g_prob, self.spam:self.s_prob,
+ self.unsure:self.u_prob}[disp]
+ self.msg.addSBHeaders(prob, self.clues)
+ self.assert_(disp not in self.msg[headername])
+ # Remove it
+ self.msg.delNotations()
+ self.assertEqual(self.msg[headername], header)
+
+ def test_delNotations_only_once(self):
+ # Check that only one disposition is removed, even if more than
+ # one is present.
+ for headername in ["subject", "to"]:
+ for disp in (self.ham, self.spam, self.unsure):
+ # Add a notation to the header
+ header = self.msg[headername]
+ self.assert_(disp not in header)
+ options["Headers", "notate_%s" % (headername,)] = \
+ (self.ham, self.unsure, self.spam)
+ prob = {self.ham:self.g_prob, self.spam:self.s_prob,
+ self.unsure:self.u_prob}[disp]
+ self.msg.addSBHeaders(prob, self.clues)
+ self.assert_(disp in self.msg[headername])
+ header2 = self.msg[headername]
+ # Add a second notation
+ self.msg.addSBHeaders(prob, self.clues)
+ self.assert_(disp in
+ self.msg[headername].replace(disp, "", 1))
+ # Remove it
+ self.msg.delNotations()
+ self.assertEqual(self.msg[headername], header2)
+ # Restore for next time round the loop
+ self.msg.replace_header(headername, header)
+
class MessageInfoBaseTest(unittest.TestCase):
***************
*** 607,612 ****
headerName = 'X-Spambayes-Exception'
header = email.Header.Header(details, header_name=headerName)
! self.assertEqual(msg[headerName].replace('\n', '\r\n'),
! str(header).replace('\n', '\r\n'))
def test_insert_exception_header(self):
--- 673,678 ----
headerName = 'X-Spambayes-Exception'
header = email.Header.Header(details, header_name=headerName)
! self.assertEqual(msg[headerName].replace('\r\n', '\n'),
! str(header).replace('\r\n', '\n'))
def test_insert_exception_header(self):
***************
*** 635,638 ****
--- 701,714 ----
header = email.Header.Header(id, header_name=headerName)
self.assertEqual(msg[headerName], str(header).replace('\n', '\r\n'))
+
+ def test_insert_exception_header_no_separator(self):
+ # Cause an exception to insert.
+ try:
+ raise Exception("Test")
+ except Exception:
+ pass
+ msg, details = insert_exception_header(malformed1)
+ self._verify_details(details)
+ self._verify_exception_header(msg, details)
_______________________________________________
Spambayes-checkins mailing list
[EMAIL PROTECTED]
http://mail.python.org/mailman/listinfo/spambayes-checkins