Code

Make signature matching more precise: only match '-- ' (note the
authorjlgijsbers <jlgijsbers@57a73879-2fb5-44c3-a270-3262357dd7e2>
Fri, 24 Oct 2003 14:59:38 +0000 (14:59 +0000)
committerjlgijsbers <jlgijsbers@57a73879-2fb5-44c3-a270-3262357dd7e2>
Fri, 24 Oct 2003 14:59:38 +0000 (14:59 +0000)
space) as a signature starter (bug #827775).

git-svn-id: http://svn.roundup-tracker.org/svnroot/roundup/trunk@1928 57a73879-2fb5-44c3-a270-3262357dd7e2

roundup/mailgw.py
test/test_mailgw.py

index 8ec27fe983d0e0689a8dc9c233bfbff7369cd855..c4a6780d44b3e589bac5351b6154aeb0a5abf42e 100644 (file)
@@ -73,7 +73,7 @@ are calling the create() method to create a new node). If an auditor raises
 an exception, the original message is bounced back to the sender with the
 explanatory message given in the exception. 
 
 an exception, the original message is bounced back to the sender with the
 explanatory message given in the exception. 
 
-$Id: mailgw.py,v 1.133 2003-10-04 11:21:47 jlgijsbers Exp $
+$Id: mailgw.py,v 1.134 2003-10-24 14:59:38 jlgijsbers Exp $
 """
 
 import string, re, os, mimetools, cStringIO, smtplib, socket, binascii, quopri
 """
 
 import string, re, os, mimetools, cStringIO, smtplib, socket, binascii, quopri
@@ -1036,7 +1036,7 @@ def uidFromAddress(db, address, create=1, **user_props):
 def parseContent(content, keep_citations, keep_body,
         blank_line=re.compile(r'[\r\n]+\s*[\r\n]+'),
         eol=re.compile(r'[\r\n]+'), 
 def parseContent(content, keep_citations, keep_body,
         blank_line=re.compile(r'[\r\n]+\s*[\r\n]+'),
         eol=re.compile(r'[\r\n]+'), 
-        signature=re.compile(r'^[>|\s]*[-_]+\s*$'),
+        signature=re.compile(r'^[>|\s]*-- $'),
         original_msg=re.compile(r'^[>|\s]*-----\s?Original Message\s?-----$')):
     ''' The message body is divided into sections by blank lines.
         Sections where the second and all subsequent lines begin with a ">"
         original_msg=re.compile(r'^[>|\s]*-----\s?Original Message\s?-----$')):
     ''' The message body is divided into sections by blank lines.
         Sections where the second and all subsequent lines begin with a ">"
index 83656fc8835140de2a1d5d17880fe5fae8d7cbfb..152f180efdf612d863ca12fc1f073b978072f8b4 100644 (file)
@@ -8,13 +8,13 @@
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 #
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 #
-# $Id: test_mailgw.py,v 1.53 2003-09-15 19:37:28 jlgijsbers Exp $
+# $Id: test_mailgw.py,v 1.54 2003-10-24 14:59:38 jlgijsbers Exp $
 
 import unittest, tempfile, os, shutil, errno, imp, sys, difflib, rfc822
 
 from cStringIO import StringIO
 
 
 import unittest, tempfile, os, shutil, errno, imp, sys, difflib, rfc822
 
 from cStringIO import StringIO
 
-from roundup.mailgw import MailGW, Unauthorized, uidFromAddress
+from roundup.mailgw import MailGW, Unauthorized, uidFromAddress, parseContent
 from roundup import init, instance, rfc2822
 
 NEEDS_INSTANCE = 1
 from roundup import init, instance, rfc2822
 
 NEEDS_INSTANCE = 1
@@ -993,10 +993,27 @@ This is a test confirmation of registration.
         handler.main(message)
 
         self.db.user.lookup('johannes')
         handler.main(message)
 
         self.db.user.lookup('johannes')
-    
+
+
+class ParseContentTestCase(unittest.TestCase):
+    def testSignatureRemoval(self):
+        summary, content = parseContent('''Testing, testing.
+
+-- 
+Signature''', 1, 0)
+        self.assertEqual(content, 'Testing, testing.')
+
+    def testKeepMultipleHyphens(self):
+        body = '''Testing, testing.
+
+----
+Testing, testing.'''
+        summary, content = parseContent(body, 1, 0)
+        self.assertEqual(body, content)
+
 def suite():
 def suite():
-    l = [unittest.makeSuite(MailgwTestCase),
-    ]
+    l = [#unittest.makeSuite(MailgwTestCase),
+         unittest.makeSuite(ParseContentTestCase)]
     return unittest.TestSuite(l)
 
 
     return unittest.TestSuite(l)