diff --git a/test/test_mailsplit.py b/test/test_mailsplit.py
index 41ab9885f21d34b9b41912e9107d74a1cd6d75ff..9c960df4357255621095bb4ea79a3a214ac781b1 100644 (file)
--- a/test/test_mailsplit.py
+++ b/test/test_mailsplit.py
-# $Id: test_mailsplit.py,v 1.2 2001-08-03 07:23:09 richard Exp $
+#
+# Copyright (c) 2001 Bizar Software Pty Ltd (http://www.bizarsoftware.com.au/)
+# This module is free software, and you may redistribute it and/or modify
+# under the same terms as Python, so long as this copyright message and
+# disclaimer are retained in their original form.
+#
+# IN NO EVENT SHALL BIZAR SOFTWARE PTY LTD BE LIABLE TO ANY PARTY FOR
+# DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING
+# OUT OF THE USE OF THIS CODE, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+# BIZAR SOFTWARE PTY LTD SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+# BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS"
+# BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
+# SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+#
+# $Id: test_mailsplit.py,v 1.15 2003-10-25 22:53:26 richard Exp $
import unittest, cStringIO
blah blah blah signature
userfoo@foo.com
'''
- summary, content = parseContent(s)
- print '\n====\n', summary
- print '====', content
- print '===='
+ summary, content = parseContent(s, 0, 0)
+ self.assertEqual(summary, 'blah blah blah blah... blah blah? blah blah blah blah blah. blah blah blah')
+ self.assertEqual(content, 'blah blah blah blah... blah blah? blah blah blah blah blah. blah blah blah\nblah blah blah blah blah blah blah blah blah blah blah!')
+
def testPostComment(self):
s = '''
blah blah blah signature
userfoo@foo.com
'''
- summary, content = parseContent(s)
- print '\n====\n', summary
- print '====', content
- print '===='
+ summary, content = parseContent(s, 0, 0)
+ self.assertEqual(summary, 'blah blah blah blah... blah blah? blah blah blah blah blah. blah blah blah')
+ self.assertEqual(content, 'blah blah blah blah... blah blah? blah blah blah blah blah. blah blah blah\nblah blah blah blah blah blah blah blah blah blah blah!')
+
+
+ def testKeepCitation(self):
+ s = '''
+blah blah blah blah... blah blah? blah blah blah blah blah. blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah!
+
+issue_tracker@foo.com wrote:
+> blah blah blah blahblah blahblah blahblah blah blah blah blah blah blah
+> blah blah blah blah blah blah blah blah blah? blah blah blah blah blah
+> blah blah blah blah blah blah blah... blah blah blah blah. blah blah
+> blah blah blah blah? blah blah blah blah blah blah! blah blah!
+>
+> -------
+> nosy: userfoo, userken
+> _________________________________________________
+> Roundup issue tracker
+> issue_tracker@foo.com
+> http://foo.com/cgi-bin/roundup.cgi/issue_tracker/
+
+--
+blah blah blah signature
+userfoo@foo.com
+'''
+ summary, content = parseContent(s, 1, 0)
+ self.assertEqual(summary, 'blah blah blah blah... blah blah? blah blah blah blah blah. blah blah blah')
+ self.assertEqual(content, '''\
+blah blah blah blah... blah blah? blah blah blah blah blah. blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah!
+
+issue_tracker@foo.com wrote:
+> blah blah blah blahblah blahblah blahblah blah blah blah blah blah blah
+> blah blah blah blah blah blah blah blah blah? blah blah blah blah blah
+> blah blah blah blah blah blah blah... blah blah blah blah. blah blah
+> blah blah blah blah? blah blah blah blah blah blah! blah blah!
+>
+> -------
+> nosy: userfoo, userken
+> _________________________________________________
+> Roundup issue tracker
+> issue_tracker@foo.com
+> http://foo.com/cgi-bin/roundup.cgi/issue_tracker/''')
+
+
+ def testKeepBody(self):
+ s = '''
+blah blah blah blah... blah blah? blah blah blah blah blah. blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah!
+
+issue_tracker@foo.com wrote:
+> blah blah blah blahblah blahblah blahblah blah blah blah blah blah blah
+> blah blah blah blah blah blah blah blah blah? blah blah blah blah blah
+> blah blah blah blah blah blah blah... blah blah blah blah. blah blah
+> blah blah blah blah? blah blah blah blah blah blah! blah blah!
+>
+> -------
+> nosy: userfoo, userken
+> _________________________________________________
+> Roundup issue tracker
+> issue_tracker@foo.com
+> http://foo.com/cgi-bin/roundup.cgi/issue_tracker/
+
+--
+blah blah blah signature
+userfoo@foo.com
+'''
+ summary, content = parseContent(s, 0, 1)
+ self.assertEqual(summary, 'blah blah blah blah... blah blah? blah blah blah blah blah. blah blah blah')
+ self.assertEqual(content, '''
+blah blah blah blah... blah blah? blah blah blah blah blah. blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah!
+
+issue_tracker@foo.com wrote:
+> blah blah blah blahblah blahblah blahblah blah blah blah blah blah blah
+> blah blah blah blah blah blah blah blah blah? blah blah blah blah blah
+> blah blah blah blah blah blah blah... blah blah blah blah. blah blah
+> blah blah blah blah? blah blah blah blah blah blah! blah blah!
+>
+> -------
+> nosy: userfoo, userken
+> _________________________________________________
+> Roundup issue tracker
+> issue_tracker@foo.com
+> http://foo.com/cgi-bin/roundup.cgi/issue_tracker/
+
+--
+blah blah blah signature
+userfoo@foo.com
+''')
+
+ def testAllQuoted(self):
+ s = '\nissue_tracker@foo.com wrote:\n> testing\n'
+ summary, content = parseContent(s, 0, 1)
+ self.assertEqual(summary, '')
+ self.assertEqual(content, s)
def testSimple(self):
s = '''testing'''
- summary, content = parseContent(s)
- print '\n====\n', summary
- print '====', content
- print '===='
+ summary, content = parseContent(s, 0, 0)
+ self.assertEqual(summary, 'testing')
+ self.assertEqual(content, 'testing')
+
+ def testParagraphs(self):
+ s = '''testing\n\ntesting\n\ntesting'''
+ summary, content = parseContent(s, 0, 0)
+ self.assertEqual(summary, 'testing')
+ self.assertEqual(content, 'testing\n\ntesting\n\ntesting')
+
+ def testSimpleFollowup(self):
+ s = '''>hello\ntesting'''
+ summary, content = parseContent(s, 0, 0)
+ self.assertEqual(summary, 'testing')
+ self.assertEqual(content, 'testing')
+
+ def testSimpleFollowupParas(self):
+ s = '''>hello\ntesting\n\ntesting\n\ntesting'''
+ summary, content = parseContent(s, 0, 0)
+ self.assertEqual(summary, 'testing')
+ self.assertEqual(content, 'testing\n\ntesting\n\ntesting')
def testEmpty(self):
s = ''
- summary, content = parseContent(s)
- print '\n====\n', summary
- print '====', content
- print '===='
+ summary, content = parseContent(s, 0, 0)
+ self.assertEqual(summary, '')
+ self.assertEqual(content, '')
-def suite():
- return unittest.makeSuite(MailsplitTestCase, 'test')
+ def testIndentationSummary(self):
+ s = ' Four space indent.\n\n Four space indent.\nNo indent.'
+ summary, content = parseContent(s, 0, 0)
+ self.assertEqual(summary, ' Four space indent.')
+ def testIndentationContent(self):
+ s = ' Four space indent.\n\n Four space indent.\nNo indent.'
+ summary, content = parseContent(s, 0, 0)
+ self.assertEqual(content, s)
+
+ def testMultilineSummary(self):
+ s = 'This is a long sentence that would normally\nbe split. More words.'
+ summary, content = parseContent(s, 0, 0)
+ self.assertEqual(summary, 'This is a long sentence that would '
+ 'normally\nbe split.')
+
+ def testKeepMultipleHyphens(self):
+ body = '''Testing, testing.
+
+----
+Testing, testing.'''
+ summary, content = parseContent(body, 1, 0)
+ self.assertEqual(body, content)
+
+def test_suite():
+ suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite(MailsplitTestCase))
+ return suite
+
+if __name__ == '__main__':
+ runner = unittest.TextTestRunner()
+ unittest.main(testRunner=runner)
-#
-# $Log: not supported by cvs2svn $
-# Revision 1.1 2001/08/03 07:18:22 richard
-# Implemented correct mail splitting (was taking a shortcut). Added unit
-# tests. Also snips signatures now too.
-#
-#
-#
# vim: set filetype=python ts=4 sw=4 et si