X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;ds=sidebyside;f=test%2Ftest_mailgw.py;h=6d531977479a332e96b65d867b3148df37480f8d;hb=373db8b1a6b7292094e0cbc4b4d67f8c33e1666d;hp=956bc5fe9691b06857e8c46c7467b4477a28871d;hpb=38c65e9e3806b6813aa2a7f15c782731aaddb983;p=roundup.git diff --git a/test/test_mailgw.py b/test/test_mailgw.py index 956bc5f..6d53197 100644 --- a/test/test_mailgw.py +++ b/test/test_mailgw.py @@ -8,11 +8,19 @@ # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # -# $Id: test_mailgw.py,v 1.18 2002-05-15 03:27:16 richard Exp $ +# $Id: test_mailgw.py,v 1.25 2002-07-29 00:56:06 richard Exp $ import unittest, cStringIO, tempfile, os, shutil, errno, imp, sys, difflib -from roundup.mailgw import MailGW +# Note: Should parse emails according to RFC2822 instead of performing a +# literal string comparision. Parsing the messages allows the tests to work for +# any legal serialization of an email. +#try : +# import email +#except ImportError : +# import rfc822 as email + +from roundup.mailgw import MailGW, Unauthorized from roundup import init, instance # TODO: make this output only enough equal lines for context, not all of @@ -66,7 +74,8 @@ class MailgwTestCase(unittest.TestCase, DiffHelper): except OSError, error: if error.errno not in (errno.ENOENT, errno.ESRCH): raise # create the instance - init.init(self.dirname, self.schema, 'anydbm', 'sekrit') + init.install(self.dirname, 'classic', 'anydbm') + init.initialise(self.dirname, 'sekrit') # check we can load the package self.instance = instance.open(self.dirname) # and open the database @@ -85,11 +94,11 @@ class MailgwTestCase(unittest.TestCase, DiffHelper): except OSError, error: if error.errno not in (errno.ENOENT, errno.ESRCH): raise - def testNewIssue(self): + def doNewIssue(self): message = cStringIO.StringIO('''Content-Type: text/plain; charset="iso-8859-1" -From: Chef +To: issue_tracker@your.tracker.email.domain.example Cc: richard@test Message-Id: Subject: [issue] Testing... @@ -97,20 +106,24 @@ Subject: [issue] Testing... This is a test submission of a new issue. ''') handler = self.instance.MailGW(self.instance, self.db) + handler.trapExceptions = 0 nodeid = handler.main(message) if os.path.exists(os.environ['SENDMAILDEBUG']): error = open(os.environ['SENDMAILDEBUG']).read() self.assertEqual('no error', error) l = self.db.issue.get(nodeid, 'nosy') l.sort() - self.assertEqual(l, ['2', '3']) + self.assertEqual(l, ['3', '4']) + + def testNewIssue(self): + self.doNewIssue() def testNewIssueNosy(self): self.instance.ADD_AUTHOR_TO_NOSY = 'yes' message = cStringIO.StringIO('''Content-Type: text/plain; charset="iso-8859-1" -From: Chef +To: issue_tracker@your.tracker.email.domain.example Cc: richard@test Message-Id: Subject: [issue] Testing... @@ -118,19 +131,20 @@ Subject: [issue] Testing... This is a test submission of a new issue. ''') handler = self.instance.MailGW(self.instance, self.db) + handler.trapExceptions = 0 nodeid = handler.main(message) if os.path.exists(os.environ['SENDMAILDEBUG']): error = open(os.environ['SENDMAILDEBUG']).read() self.assertEqual('no error', error) l = self.db.issue.get(nodeid, 'nosy') l.sort() - self.assertEqual(l, ['2', '3']) + self.assertEqual(l, ['3', '4']) def testAlternateAddress(self): message = cStringIO.StringIO('''Content-Type: text/plain; charset="iso-8859-1" From: John Doe -To: issue_tracker@fill.me.in. +To: issue_tracker@your.tracker.email.domain.example Message-Id: Subject: [issue] Testing... @@ -138,6 +152,7 @@ This is a test submission of a new issue. ''') userlist = self.db.user.list() handler = self.instance.MailGW(self.instance, self.db) + handler.trapExceptions = 0 handler.main(message) if os.path.exists(os.environ['SENDMAILDEBUG']): error = open(os.environ['SENDMAILDEBUG']).read() @@ -148,8 +163,8 @@ This is a test submission of a new issue. def testNewIssueNoClass(self): message = cStringIO.StringIO('''Content-Type: text/plain; charset="iso-8859-1" -From: Chef +To: issue_tracker@your.tracker.email.domain.example Cc: richard@test Message-Id: Subject: Testing... @@ -157,6 +172,7 @@ Subject: Testing... This is a test submission of a new issue. ''') handler = self.instance.MailGW(self.instance, self.db) + handler.trapExceptions = 0 handler.main(message) if os.path.exists(os.environ['SENDMAILDEBUG']): error = open(os.environ['SENDMAILDEBUG']).read() @@ -165,26 +181,27 @@ This is a test submission of a new issue. def testNewIssueAuthMsg(self): message = cStringIO.StringIO('''Content-Type: text/plain; charset="iso-8859-1" -From: Chef +To: issue_tracker@your.tracker.email.domain.example Message-Id: Subject: [issue] Testing... [nosy=mary; assignedto=richard] This is a test submission of a new issue. ''') handler = self.instance.MailGW(self.instance, self.db) + handler.trapExceptions = 0 # TODO: fix the damn config - this is apalling self.db.config.MESSAGES_TO_AUTHOR = 'yes' handler.main(message) self.compareStrings(open(os.environ['SENDMAILDEBUG']).read(), -'''FROM: roundup-admin@fill.me.in. +'''FROM: roundup-admin@your.tracker.email.domain.example TO: chef@bork.bork.bork, mary@test, richard@test Content-Type: text/plain Subject: [issue1] Testing... To: chef@bork.bork.bork, mary@test, richard@test -From: Chef -Reply-To: Roundup issue tracker +From: "Chef" +Reply-To: "Roundup issue tracker" MIME-Version: 1.0 Message-Id: X-Roundup-Name: Roundup issue tracker @@ -202,10 +219,10 @@ messages: 1 nosy: Chef, mary, richard status: unread title: Testing... -___________________________________________________ -"Roundup issue tracker" -http://some.useful.url/issue1 -___________________________________________________ +_________________________________________________________________________ +"Roundup issue tracker" +http://your.tracker.url.example/issue1 +_________________________________________________________________________ ''') # BUG @@ -217,29 +234,29 @@ ___________________________________________________ # BUG should test some binary attamchent too. - def testFollowup(self): - self.testNewIssue() + def testSimpleFollowup(self): + self.doNewIssue() message = cStringIO.StringIO('''Content-Type: text/plain; charset="iso-8859-1" -From: richard -To: issue_tracker@fill.me.in. +From: mary +To: issue_tracker@your.tracker.email.domain.example Message-Id: In-Reply-To: -Subject: [issue1] Testing... [assignedto=mary; nosy=john] +Subject: [issue1] Testing... -This is a followup +This is a second followup ''') handler = self.instance.MailGW(self.instance, self.db) + handler.trapExceptions = 0 handler.main(message) - self.compareStrings(open(os.environ['SENDMAILDEBUG']).read(), -'''FROM: roundup-admin@fill.me.in. -TO: chef@bork.bork.bork, john@test, mary@test +'''FROM: roundup-admin@your.tracker.email.domain.example +TO: chef@bork.bork.bork, richard@test Content-Type: text/plain Subject: [issue1] Testing... -To: chef@bork.bork.bork, john@test, mary@test -From: richard -Reply-To: Roundup issue tracker +To: chef@bork.bork.bork, richard@test +From: "mary" +Reply-To: "Roundup issue tracker" MIME-Version: 1.0 Message-Id: In-Reply-To: @@ -247,43 +264,47 @@ X-Roundup-Name: Roundup issue tracker Content-Transfer-Encoding: quoted-printable -richard added the comment: +mary added the comment: -This is a followup +This is a second followup ---------- -assignedto: -> mary -nosy: +mary, john status: unread -> chatting -___________________________________________________ -"Roundup issue tracker" -http://some.useful.url/issue1 -___________________________________________________ +_________________________________________________________________________ +"Roundup issue tracker" +http://your.tracker.url.example/issue1 +_________________________________________________________________________ ''') - def testFollowup2(self): - self.testNewIssue() + def testFollowup(self): + self.doNewIssue() + message = cStringIO.StringIO('''Content-Type: text/plain; charset="iso-8859-1" -From: mary -To: issue_tracker@fill.me.in. +From: richard +To: issue_tracker@your.tracker.email.domain.example Message-Id: In-Reply-To: -Subject: [issue1] Testing... +Subject: [issue1] Testing... [assignedto=mary; nosy=+john] -This is a second followup +This is a followup ''') handler = self.instance.MailGW(self.instance, self.db) + handler.trapExceptions = 0 handler.main(message) + l = self.db.issue.get('1', 'nosy') + l.sort() + self.assertEqual(l, ['3', '4', '5', '6']) + self.compareStrings(open(os.environ['SENDMAILDEBUG']).read(), -'''FROM: roundup-admin@fill.me.in. -TO: chef@bork.bork.bork, richard@test +'''FROM: roundup-admin@your.tracker.email.domain.example +TO: chef@bork.bork.bork, john@test, mary@test Content-Type: text/plain Subject: [issue1] Testing... -To: chef@bork.bork.bork, richard@test -From: mary -Reply-To: Roundup issue tracker +To: chef@bork.bork.bork, john@test, mary@test +From: "richard" +Reply-To: "Roundup issue tracker" MIME-Version: 1.0 Message-Id: In-Reply-To: @@ -291,42 +312,45 @@ X-Roundup-Name: Roundup issue tracker Content-Transfer-Encoding: quoted-printable -mary added the comment: +richard added the comment: -This is a second followup +This is a followup ---------- +assignedto: -> mary +nosy: +mary, john status: unread -> chatting -___________________________________________________ -"Roundup issue tracker" -http://some.useful.url/issue1 -___________________________________________________ +_________________________________________________________________________ +"Roundup issue tracker" +http://your.tracker.url.example/issue1 +_________________________________________________________________________ ''') def testFollowupTitleMatch(self): - self.testNewIssue() + self.doNewIssue() message = cStringIO.StringIO('''Content-Type: text/plain; charset="iso-8859-1" From: richard -To: issue_tracker@fill.me.in. +To: issue_tracker@your.tracker.email.domain.example Message-Id: In-Reply-To: -Subject: Re: Testing... [assignedto=mary; nosy=john] +Subject: Re: Testing... [assignedto=mary; nosy=+john] This is a followup ''') handler = self.instance.MailGW(self.instance, self.db) + handler.trapExceptions = 0 handler.main(message) self.compareStrings(open(os.environ['SENDMAILDEBUG']).read(), -'''FROM: roundup-admin@fill.me.in. +'''FROM: roundup-admin@your.tracker.email.domain.example TO: chef@bork.bork.bork, john@test, mary@test Content-Type: text/plain Subject: [issue1] Testing... To: chef@bork.bork.bork, john@test, mary@test -From: richard -Reply-To: Roundup issue tracker +From: "richard" +Reply-To: "Roundup issue tracker" MIME-Version: 1.0 Message-Id: In-Reply-To: @@ -343,19 +367,19 @@ This is a followup assignedto: -> mary nosy: +mary, john status: unread -> chatting -___________________________________________________ -"Roundup issue tracker" -http://some.useful.url/issue1 -___________________________________________________ +_________________________________________________________________________ +"Roundup issue tracker" +http://your.tracker.url.example/issue1 +_________________________________________________________________________ ''') def testFollowupNosyAuthor(self): - self.testNewIssue() - self.instance.ADD_AUTHOR_TO_NOSY = 'yes' + self.doNewIssue() + self.db.config.ADD_AUTHOR_TO_NOSY = self.instance.ADD_AUTHOR_TO_NOSY = 'yes' message = cStringIO.StringIO('''Content-Type: text/plain; charset="iso-8859-1" From: john@test -To: issue_tracker@fill.me.in. +To: issue_tracker@your.tracker.email.domain.example Message-Id: In-Reply-To: Subject: [issue1] Testing... @@ -363,16 +387,17 @@ Subject: [issue1] Testing... This is a followup ''') handler = self.instance.MailGW(self.instance, self.db) + handler.trapExceptions = 0 handler.main(message) self.compareStrings(open(os.environ['SENDMAILDEBUG']).read(), -'''FROM: roundup-admin@fill.me.in. +'''FROM: roundup-admin@your.tracker.email.domain.example TO: chef@bork.bork.bork, richard@test Content-Type: text/plain Subject: [issue1] Testing... To: chef@bork.bork.bork, richard@test -From: john -Reply-To: Roundup issue tracker +From: "john" +Reply-To: "Roundup issue tracker" MIME-Version: 1.0 Message-Id: In-Reply-To: @@ -388,20 +413,20 @@ This is a followup ---------- nosy: +john status: unread -> chatting -___________________________________________________ -"Roundup issue tracker" -http://some.useful.url/issue1 -___________________________________________________ +_________________________________________________________________________ +"Roundup issue tracker" +http://your.tracker.url.example/issue1 +_________________________________________________________________________ ''') def testFollowupNosyRecipients(self): - self.testNewIssue() - self.instance.ADD_RECIPIENTS_TO_NOSY = 'yes' + self.doNewIssue() + self.db.config.ADD_RECIPIENTS_TO_NOSY = self.instance.ADD_RECIPIENTS_TO_NOSY = 'yes' message = cStringIO.StringIO('''Content-Type: text/plain; charset="iso-8859-1" From: richard@test -To: issue_tracker@fill.me.in. +To: issue_tracker@your.tracker.email.domain.example Cc: john@test Message-Id: In-Reply-To: @@ -410,16 +435,17 @@ Subject: [issue1] Testing... This is a followup ''') handler = self.instance.MailGW(self.instance, self.db) + handler.trapExceptions = 0 handler.main(message) self.compareStrings(open(os.environ['SENDMAILDEBUG']).read(), -'''FROM: roundup-admin@fill.me.in. +'''FROM: roundup-admin@your.tracker.email.domain.example TO: chef@bork.bork.bork Content-Type: text/plain Subject: [issue1] Testing... To: chef@bork.bork.bork -From: richard -Reply-To: Roundup issue tracker +From: "richard" +Reply-To: "Roundup issue tracker" MIME-Version: 1.0 Message-Id: In-Reply-To: @@ -435,21 +461,21 @@ This is a followup ---------- nosy: +john status: unread -> chatting -___________________________________________________ -"Roundup issue tracker" -http://some.useful.url/issue1 -___________________________________________________ +_________________________________________________________________________ +"Roundup issue tracker" +http://your.tracker.url.example/issue1 +_________________________________________________________________________ ''') def testFollowupNosyAuthorAndCopy(self): - self.testNewIssue() - self.instance.ADD_AUTHOR_TO_NOSY = 'yes' + self.doNewIssue() + self.db.config.ADD_AUTHOR_TO_NOSY = self.instance.ADD_AUTHOR_TO_NOSY = 'yes' self.db.config.MESSAGES_TO_AUTHOR = 'yes' message = cStringIO.StringIO('''Content-Type: text/plain; charset="iso-8859-1" From: john@test -To: issue_tracker@fill.me.in. +To: issue_tracker@your.tracker.email.domain.example Message-Id: In-Reply-To: Subject: [issue1] Testing... @@ -457,16 +483,17 @@ Subject: [issue1] Testing... This is a followup ''') handler = self.instance.MailGW(self.instance, self.db) + handler.trapExceptions = 0 handler.main(message) self.compareStrings(open(os.environ['SENDMAILDEBUG']).read(), -'''FROM: roundup-admin@fill.me.in. +'''FROM: roundup-admin@your.tracker.email.domain.example TO: chef@bork.bork.bork, john@test, richard@test Content-Type: text/plain Subject: [issue1] Testing... To: chef@bork.bork.bork, john@test, richard@test -From: john -Reply-To: Roundup issue tracker +From: "john" +Reply-To: "Roundup issue tracker" MIME-Version: 1.0 Message-Id: In-Reply-To: @@ -482,20 +509,20 @@ This is a followup ---------- nosy: +john status: unread -> chatting -___________________________________________________ -"Roundup issue tracker" -http://some.useful.url/issue1 -___________________________________________________ +_________________________________________________________________________ +"Roundup issue tracker" +http://your.tracker.url.example/issue1 +_________________________________________________________________________ ''') def testFollowupNoNosyAuthor(self): - self.testNewIssue() + self.doNewIssue() self.instance.ADD_AUTHOR_TO_NOSY = 'no' message = cStringIO.StringIO('''Content-Type: text/plain; charset="iso-8859-1" From: john@test -To: issue_tracker@fill.me.in. +To: issue_tracker@your.tracker.email.domain.example Message-Id: In-Reply-To: Subject: [issue1] Testing... @@ -503,16 +530,17 @@ Subject: [issue1] Testing... This is a followup ''') handler = self.instance.MailGW(self.instance, self.db) + handler.trapExceptions = 0 handler.main(message) self.compareStrings(open(os.environ['SENDMAILDEBUG']).read(), -'''FROM: roundup-admin@fill.me.in. +'''FROM: roundup-admin@your.tracker.email.domain.example TO: chef@bork.bork.bork, richard@test Content-Type: text/plain Subject: [issue1] Testing... To: chef@bork.bork.bork, richard@test -From: john -Reply-To: Roundup issue tracker +From: "john" +Reply-To: "Roundup issue tracker" MIME-Version: 1.0 Message-Id: In-Reply-To: @@ -527,20 +555,20 @@ This is a followup ---------- status: unread -> chatting -___________________________________________________ -"Roundup issue tracker" -http://some.useful.url/issue1 -___________________________________________________ +_________________________________________________________________________ +"Roundup issue tracker" +http://your.tracker.url.example/issue1 +_________________________________________________________________________ ''') def testFollowupNoNosyRecipients(self): - self.testNewIssue() + self.doNewIssue() self.instance.ADD_RECIPIENTS_TO_NOSY = 'no' message = cStringIO.StringIO('''Content-Type: text/plain; charset="iso-8859-1" From: richard@test -To: issue_tracker@fill.me.in. +To: issue_tracker@your.tracker.email.domain.example Cc: john@test Message-Id: In-Reply-To: @@ -549,16 +577,17 @@ Subject: [issue1] Testing... This is a followup ''') handler = self.instance.MailGW(self.instance, self.db) + handler.trapExceptions = 0 handler.main(message) self.compareStrings(open(os.environ['SENDMAILDEBUG']).read(), -'''FROM: roundup-admin@fill.me.in. +'''FROM: roundup-admin@your.tracker.email.domain.example TO: chef@bork.bork.bork Content-Type: text/plain Subject: [issue1] Testing... To: chef@bork.bork.bork -From: richard -Reply-To: Roundup issue tracker +From: "richard" +Reply-To: "Roundup issue tracker" MIME-Version: 1.0 Message-Id: In-Reply-To: @@ -573,19 +602,79 @@ This is a followup ---------- status: unread -> chatting -___________________________________________________ -"Roundup issue tracker" -http://some.useful.url/issue1 -___________________________________________________ +_________________________________________________________________________ +"Roundup issue tracker" +http://your.tracker.url.example/issue1 +_________________________________________________________________________ ''') + def testNosyRemove(self): + self.doNewIssue() + + message = cStringIO.StringIO('''Content-Type: text/plain; + charset="iso-8859-1" +From: richard +To: issue_tracker@your.tracker.email.domain.example +Message-Id: +In-Reply-To: +Subject: [issue1] Testing... [nosy=-richard] + +''') + handler = self.instance.MailGW(self.instance, self.db) + handler.trapExceptions = 0 + handler.main(message) + l = self.db.issue.get('1', 'nosy') + l.sort() + self.assertEqual(l, ['3']) + + # NO NOSY MESSAGE SHOULD BE SENT! + self.assert_(not os.path.exists(os.environ['SENDMAILDEBUG'])) + + def testNewUserAuthor(self): + # first without the permission + # heh... just ignore the API for a second ;) + self.db.security.role['Anonymous'].permissions=[] + anonid = self.db.user.lookup('anonymous') + self.db.user.set(anonid, roles='Anonymous') + + self.db.security.hasPermission('Email Registration', anonid) + l = self.db.user.list() + l.sort() + s = '''Content-Type: text/plain; + charset="iso-8859-1" +From: fubar +To: issue_tracker@your.tracker.email.domain.example +Message-Id: +Subject: [issue] Testing... + +This is a test submission of a new issue. +''' + message = cStringIO.StringIO(s) + handler = self.instance.MailGW(self.instance, self.db) + handler.trapExceptions = 0 + self.assertRaises(Unauthorized, handler.main, message) + m = self.db.user.list() + m.sort() + self.assertEqual(l, m) + + # now with the permission + p = self.db.security.getPermission('Email Registration') + self.db.security.role['Anonymous'].permissions=[p] + handler = self.instance.MailGW(self.instance, self.db) + handler.trapExceptions = 0 + message = cStringIO.StringIO(s) + handler.main(message) + m = self.db.user.list() + m.sort() + self.assertNotEqual(l, m) + def testEnc01(self): - self.testNewIssue() + self.doNewIssue() message = cStringIO.StringIO('''Content-Type: text/plain; charset="iso-8859-1" From: mary -To: issue_tracker@fill.me.in. +To: issue_tracker@your.tracker.email.domain.example Message-Id: In-Reply-To: Subject: [issue1] Testing... @@ -597,15 +686,16 @@ A message with encoding (encoded oe =F6) ''') handler = self.instance.MailGW(self.instance, self.db) + handler.trapExceptions = 0 handler.main(message) self.compareStrings(open(os.environ['SENDMAILDEBUG']).read(), -'''FROM: roundup-admin@fill.me.in. +'''FROM: roundup-admin@your.tracker.email.domain.example TO: chef@bork.bork.bork, richard@test Content-Type: text/plain Subject: [issue1] Testing... To: chef@bork.bork.bork, richard@test -From: mary -Reply-To: Roundup issue tracker +From: "mary" +Reply-To: "Roundup issue tracker" MIME-Version: 1.0 Message-Id: In-Reply-To: @@ -619,19 +709,19 @@ A message with encoding (encoded oe =F6) ---------- status: unread -> chatting -___________________________________________________ -"Roundup issue tracker" -http://some.useful.url/issue1 -___________________________________________________ +_________________________________________________________________________ +"Roundup issue tracker" +http://your.tracker.url.example/issue1 +_________________________________________________________________________ ''') def testMultipartEnc01(self): - self.testNewIssue() + self.doNewIssue() message = cStringIO.StringIO('''Content-Type: text/plain; charset="iso-8859-1" From: mary -To: issue_tracker@fill.me.in. +To: issue_tracker@your.tracker.email.domain.example Message-Id: In-Reply-To: Subject: [issue1] Testing... @@ -650,15 +740,16 @@ A message with first part encoded (encoded oe =F6) ''') handler = self.instance.MailGW(self.instance, self.db) + handler.trapExceptions = 0 handler.main(message) self.compareStrings(open(os.environ['SENDMAILDEBUG']).read(), -'''FROM: roundup-admin@fill.me.in. +'''FROM: roundup-admin@your.tracker.email.domain.example TO: chef@bork.bork.bork, richard@test Content-Type: text/plain Subject: [issue1] Testing... To: chef@bork.bork.bork, richard@test -From: mary -Reply-To: Roundup issue tracker +From: "mary" +Reply-To: "Roundup issue tracker" MIME-Version: 1.0 Message-Id: In-Reply-To: @@ -672,10 +763,10 @@ A message with first part encoded (encoded oe =F6) ---------- status: unread -> chatting -___________________________________________________ -"Roundup issue tracker" -http://some.useful.url/issue1 -___________________________________________________ +_________________________________________________________________________ +"Roundup issue tracker" +http://your.tracker.url.example/issue1 +_________________________________________________________________________ ''') class ExtMailgwTestCase(MailgwTestCase): @@ -690,6 +781,48 @@ def suite(): # # $Log: not supported by cvs2svn $ +# Revision 1.24 2002/07/26 08:27:00 richard +# Very close now. The cgi and mailgw now use the new security API. The two +# templates have been migrated to that setup. Lots of unit tests. Still some +# issue in the web form for editing Roles assigned to users. +# +# Revision 1.23 2002/07/14 02:02:43 richard +# Fixed the unit tests for the new multilist controls in the mailgw +# +# Revision 1.22 2002/07/09 01:21:24 richard +# Added ability for unit tests to turn off exception handling in mailgw so +# that exceptions are reported earlier (and hence make sense). +# +# Revision 1.21 2002/06/18 03:59:59 dman13 +# Updated message strings to match the RFC822 address quoting performed +# by the 'email' and 'rfc822' modules. The verification really should +# use a RFC2822 message parser rather than literal string comparisions +# to allow for legal variations in messages. +# +# Revision 1.20 2002/05/29 01:16:17 richard +# Sorry about this huge checkin! It's fixing a lot of related stuff in one go +# though. +# +# . #541941 ] changing multilink properties by mail +# . #526730 ] search for messages capability +# . #505180 ] split MailGW.handle_Message +# - also changed cgi client since it was duplicating the functionality +# . build htmlbase if tests are run using CVS checkout (removed note from +# installation.txt) +# . don't create an empty message on email issue creation if the email is empty +# +# Revision 1.19 2002/05/23 04:26:05 richard +# 'I must run unit tests before committing\n' * 100 +# +# Revision 1.18 2002/05/15 03:27:16 richard +# . fixed SCRIPT_NAME in ZRoundup for instances not at top level of Zope +# (thanks dman) +# . fixed some sorting issues that were breaking some unit tests under py2.2 +# . mailgw test output dir was confusing the init test (but only on 2.2 *shrug*) +# +# fixed bug in the init unit test that meant only the bsddb test ran if it +# could (it clobbered the anydbm test) +# # Revision 1.17 2002/05/02 07:56:34 richard # . added option to automatically add the authors and recipients of messages # to the nosy lists with the options ADD_AUTHOR_TO_NOSY (default 'new') and