diff --git a/test/test_mailgw.py b/test/test_mailgw.py
index 93a1f8fb5b955affa47a0ed2c928b764fa0defb6..e8325bc5a89fdd071b412cb05ef3e1d4e5ecd39b 100644 (file)
--- a/test/test_mailgw.py
+++ b/test/test_mailgw.py
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: test_mailgw.py,v 1.20 2002-05-29 01:16:17 richard Exp $
+# $Id: test_mailgw.py,v 1.23 2002-07-14 02:02:43 richard Exp $
import unittest, cStringIO, tempfile, os, shutil, errno, imp, sys, difflib
+# 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
from roundup import init, instance
def doNewIssue(self):
message = cStringIO.StringIO('''Content-Type: text/plain;
charset="iso-8859-1"
-From: Chef <chef@bork.bork.bork
+From: Chef <chef@bork.bork.bork>
To: issue_tracker@your.tracker.email.domain.example
Cc: richard@test
Message-Id: <dummy_test_message_id>
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.instance.ADD_AUTHOR_TO_NOSY = 'yes'
message = cStringIO.StringIO('''Content-Type: text/plain;
charset="iso-8859-1"
-From: Chef <chef@bork.bork.bork
+From: Chef <chef@bork.bork.bork>
To: issue_tracker@your.tracker.email.domain.example
Cc: richard@test
Message-Id: <dummy_test_message_id>
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()
''')
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()
def testNewIssueNoClass(self):
message = cStringIO.StringIO('''Content-Type: text/plain;
charset="iso-8859-1"
-From: Chef <chef@bork.bork.bork
+From: Chef <chef@bork.bork.bork>
To: issue_tracker@your.tracker.email.domain.example
Cc: richard@test
Message-Id: <dummy_test_message_id>
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()
def testNewIssueAuthMsg(self):
message = cStringIO.StringIO('''Content-Type: text/plain;
charset="iso-8859-1"
-From: Chef <chef@bork.bork.bork
+From: Chef <chef@bork.bork.bork>
To: issue_tracker@your.tracker.email.domain.example
Message-Id: <dummy_test_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)
Content-Type: text/plain
Subject: [issue1] Testing...
To: chef@bork.bork.bork, mary@test, richard@test
-From: Chef <issue_tracker@your.tracker.email.domain.example>
-Reply-To: Roundup issue tracker <issue_tracker@your.tracker.email.domain.example>
+From: "Chef" <issue_tracker@your.tracker.email.domain.example>
+Reply-To: "Roundup issue tracker" <issue_tracker@your.tracker.email.domain.example>
MIME-Version: 1.0
Message-Id: <dummy_test_message_id>
X-Roundup-Name: Roundup issue tracker
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@your.tracker.email.domain.example
Content-Type: text/plain
Subject: [issue1] Testing...
To: chef@bork.bork.bork, richard@test
-From: mary <issue_tracker@your.tracker.email.domain.example>
-Reply-To: Roundup issue tracker <issue_tracker@your.tracker.email.domain.example>
+From: "mary" <issue_tracker@your.tracker.email.domain.example>
+Reply-To: "Roundup issue tracker" <issue_tracker@your.tracker.email.domain.example>
MIME-Version: 1.0
Message-Id: <followup_dummy_id>
In-Reply-To: <dummy_test_message_id>
To: issue_tracker@your.tracker.email.domain.example
Message-Id: <followup_dummy_id>
In-Reply-To: <dummy_test_message_id>
-Subject: [issue1] Testing... [assignedto=mary; nosy=john]
+Subject: [issue1] Testing... [assignedto=mary; nosy=+john]
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()
Content-Type: text/plain
Subject: [issue1] Testing...
To: chef@bork.bork.bork, john@test, mary@test
-From: richard <issue_tracker@your.tracker.email.domain.example>
-Reply-To: Roundup issue tracker <issue_tracker@your.tracker.email.domain.example>
+From: "richard" <issue_tracker@your.tracker.email.domain.example>
+Reply-To: "Roundup issue tracker" <issue_tracker@your.tracker.email.domain.example>
MIME-Version: 1.0
Message-Id: <followup_dummy_id>
In-Reply-To: <dummy_test_message_id>
To: issue_tracker@your.tracker.email.domain.example
Message-Id: <followup_dummy_id>
In-Reply-To: <dummy_test_message_id>
-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(),
Content-Type: text/plain
Subject: [issue1] Testing...
To: chef@bork.bork.bork, john@test, mary@test
-From: richard <issue_tracker@your.tracker.email.domain.example>
-Reply-To: Roundup issue tracker <issue_tracker@your.tracker.email.domain.example>
+From: "richard" <issue_tracker@your.tracker.email.domain.example>
+Reply-To: "Roundup issue tracker" <issue_tracker@your.tracker.email.domain.example>
MIME-Version: 1.0
Message-Id: <followup_dummy_id>
In-Reply-To: <dummy_test_message_id>
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(),
Content-Type: text/plain
Subject: [issue1] Testing...
To: chef@bork.bork.bork, richard@test
-From: john <issue_tracker@your.tracker.email.domain.example>
-Reply-To: Roundup issue tracker <issue_tracker@your.tracker.email.domain.example>
+From: "john" <issue_tracker@your.tracker.email.domain.example>
+Reply-To: "Roundup issue tracker" <issue_tracker@your.tracker.email.domain.example>
MIME-Version: 1.0
Message-Id: <followup_dummy_id>
In-Reply-To: <dummy_test_message_id>
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(),
Content-Type: text/plain
Subject: [issue1] Testing...
To: chef@bork.bork.bork
-From: richard <issue_tracker@your.tracker.email.domain.example>
-Reply-To: Roundup issue tracker <issue_tracker@your.tracker.email.domain.example>
+From: "richard" <issue_tracker@your.tracker.email.domain.example>
+Reply-To: "Roundup issue tracker" <issue_tracker@your.tracker.email.domain.example>
MIME-Version: 1.0
Message-Id: <followup_dummy_id>
In-Reply-To: <dummy_test_message_id>
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(),
Content-Type: text/plain
Subject: [issue1] Testing...
To: chef@bork.bork.bork, john@test, richard@test
-From: john <issue_tracker@your.tracker.email.domain.example>
-Reply-To: Roundup issue tracker <issue_tracker@your.tracker.email.domain.example>
+From: "john" <issue_tracker@your.tracker.email.domain.example>
+Reply-To: "Roundup issue tracker" <issue_tracker@your.tracker.email.domain.example>
MIME-Version: 1.0
Message-Id: <followup_dummy_id>
In-Reply-To: <dummy_test_message_id>
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(),
Content-Type: text/plain
Subject: [issue1] Testing...
To: chef@bork.bork.bork, richard@test
-From: john <issue_tracker@your.tracker.email.domain.example>
-Reply-To: Roundup issue tracker <issue_tracker@your.tracker.email.domain.example>
+From: "john" <issue_tracker@your.tracker.email.domain.example>
+Reply-To: "Roundup issue tracker" <issue_tracker@your.tracker.email.domain.example>
MIME-Version: 1.0
Message-Id: <followup_dummy_id>
In-Reply-To: <dummy_test_message_id>
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(),
Content-Type: text/plain
Subject: [issue1] Testing...
To: chef@bork.bork.bork
-From: richard <issue_tracker@your.tracker.email.domain.example>
-Reply-To: Roundup issue tracker <issue_tracker@your.tracker.email.domain.example>
+From: "richard" <issue_tracker@your.tracker.email.domain.example>
+Reply-To: "Roundup issue tracker" <issue_tracker@your.tracker.email.domain.example>
MIME-Version: 1.0
Message-Id: <followup_dummy_id>
In-Reply-To: <dummy_test_message_id>
''')
handler = self.instance.MailGW(self.instance, self.db)
+ handler.trapExceptions = 0
handler.main(message)
l = self.db.issue.get('1', 'nosy')
l.sort()
''')
handler = self.instance.MailGW(self.instance, self.db)
+ handler.trapExceptions = 0
handler.main(message)
self.compareStrings(open(os.environ['SENDMAILDEBUG']).read(),
'''FROM: roundup-admin@your.tracker.email.domain.example
Content-Type: text/plain
Subject: [issue1] Testing...
To: chef@bork.bork.bork, richard@test
-From: mary <issue_tracker@your.tracker.email.domain.example>
-Reply-To: Roundup issue tracker <issue_tracker@your.tracker.email.domain.example>
+From: "mary" <issue_tracker@your.tracker.email.domain.example>
+Reply-To: "Roundup issue tracker" <issue_tracker@your.tracker.email.domain.example>
MIME-Version: 1.0
Message-Id: <followup_dummy_id>
In-Reply-To: <dummy_test_message_id>
''')
handler = self.instance.MailGW(self.instance, self.db)
+ handler.trapExceptions = 0
handler.main(message)
self.compareStrings(open(os.environ['SENDMAILDEBUG']).read(),
'''FROM: roundup-admin@your.tracker.email.domain.example
Content-Type: text/plain
Subject: [issue1] Testing...
To: chef@bork.bork.bork, richard@test
-From: mary <issue_tracker@your.tracker.email.domain.example>
-Reply-To: Roundup issue tracker <issue_tracker@your.tracker.email.domain.example>
+From: "mary" <issue_tracker@your.tracker.email.domain.example>
+Reply-To: "Roundup issue tracker" <issue_tracker@your.tracker.email.domain.example>
MIME-Version: 1.0
Message-Id: <followup_dummy_id>
In-Reply-To: <dummy_test_message_id>
#
# $Log: not supported by cvs2svn $
+# 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
#