| Index: third_party/buildbot_7_12/buildbot/test/test_mailparse.py
|
| diff --git a/third_party/buildbot_7_12/buildbot/test/test_mailparse.py b/third_party/buildbot_7_12/buildbot/test/test_mailparse.py
|
| deleted file mode 100644
|
| index 8228f2054652ad1daeea67477a7d725fed926f68..0000000000000000000000000000000000000000
|
| --- a/third_party/buildbot_7_12/buildbot/test/test_mailparse.py
|
| +++ /dev/null
|
| @@ -1,413 +0,0 @@
|
| -# -*- test-case-name: buildbot.test.test_mailparse -*-
|
| -
|
| -import time
|
| -import os
|
| -from twisted.trial import unittest
|
| -from twisted.python import util
|
| -from buildbot.changes import mail
|
| -
|
| -import sys
|
| -if sys.version_info[:3] < (2,4,0):
|
| - from sets import Set as set
|
| -
|
| -class TestFreshCVS(unittest.TestCase):
|
| -
|
| - def get(self, msg):
|
| - msg = util.sibpath(__file__, msg)
|
| - s = mail.FCMaildirSource(None)
|
| - return s.parse_file(open(msg, "r"))
|
| -
|
| - def testMsg1(self):
|
| - c = self.get("mail/freshcvs.1")
|
| - self.assertEqual(c.who, "moshez")
|
| - self.assertEqual(set(c.files), set(["Twisted/debian/python-twisted.menu.in"]))
|
| - self.assertEqual(c.comments, "Instance massenger, apparently\n")
|
| - self.assertEqual(c.isdir, 0)
|
| -
|
| - def testMsg2(self):
|
| - c = self.get("mail/freshcvs.2")
|
| - self.assertEqual(c.who, "itamarst")
|
| - self.assertEqual(set(c.files), set(["Twisted/twisted/web/woven/form.py",
|
| - "Twisted/twisted/python/formmethod.py"]))
|
| - self.assertEqual(c.comments,
|
| - "submit formmethod now subclass of Choice\n")
|
| - self.assertEqual(c.isdir, 0)
|
| -
|
| - def testMsg3(self):
|
| - # same as msg2 but missing the ViewCVS section
|
| - c = self.get("mail/freshcvs.3")
|
| - self.assertEqual(c.who, "itamarst")
|
| - self.assertEqual(set(c.files), set(["Twisted/twisted/web/woven/form.py",
|
| - "Twisted/twisted/python/formmethod.py"]))
|
| - self.assertEqual(c.comments,
|
| - "submit formmethod now subclass of Choice\n")
|
| - self.assertEqual(c.isdir, 0)
|
| -
|
| - def testMsg4(self):
|
| - # same as msg3 but also missing CVS patch section
|
| - c = self.get("mail/freshcvs.4")
|
| - self.assertEqual(c.who, "itamarst")
|
| - self.assertEqual(set(c.files), set(["Twisted/twisted/web/woven/form.py",
|
| - "Twisted/twisted/python/formmethod.py"]))
|
| - self.assertEqual(c.comments,
|
| - "submit formmethod now subclass of Choice\n")
|
| - self.assertEqual(c.isdir, 0)
|
| -
|
| - def testMsg5(self):
|
| - # creates a directory
|
| - c = self.get("mail/freshcvs.5")
|
| - self.assertEqual(c.who, "etrepum")
|
| - self.assertEqual(set(c.files), set(["Twisted/doc/examples/cocoaDemo"]))
|
| - self.assertEqual(c.comments,
|
| - "Directory /cvs/Twisted/doc/examples/cocoaDemo added to the repository\n")
|
| - self.assertEqual(c.isdir, 1)
|
| -
|
| - def testMsg6(self):
|
| - # adds files
|
| - c = self.get("mail/freshcvs.6")
|
| - self.assertEqual(c.who, "etrepum")
|
| - self.assertEqual(set(c.files), set([
|
| - "Twisted/doc/examples/cocoaDemo/MyAppDelegate.py",
|
| - "Twisted/doc/examples/cocoaDemo/__main__.py",
|
| - "Twisted/doc/examples/cocoaDemo/bin-python-main.m",
|
| - "Twisted/doc/examples/cocoaDemo/English.lproj/InfoPlist.strings",
|
| - "Twisted/doc/examples/cocoaDemo/English.lproj/MainMenu.nib/classes.nib",
|
| - "Twisted/doc/examples/cocoaDemo/English.lproj/MainMenu.nib/info.nib",
|
| - "Twisted/doc/examples/cocoaDemo/English.lproj/MainMenu.nib/keyedobjects.nib",
|
| - "Twisted/doc/examples/cocoaDemo/cocoaDemo.pbproj/project.pbxproj"]))
|
| - self.assertEqual(c.comments,
|
| - "Cocoa (OS X) clone of the QT demo, using polling reactor\n\nRequires pyobjc ( http://pyobjc.sourceforge.net ), it's not much different than the template project. The reactor is iterated periodically by a repeating NSTimer.\n")
|
| - self.assertEqual(c.isdir, 0)
|
| -
|
| - def testMsg7(self):
|
| - # deletes files
|
| - c = self.get("mail/freshcvs.7")
|
| - self.assertEqual(c.who, "etrepum")
|
| - self.assertEqual(set(c.files), set([
|
| - "Twisted/doc/examples/cocoaDemo/MyAppDelegate.py",
|
| - "Twisted/doc/examples/cocoaDemo/__main__.py",
|
| - "Twisted/doc/examples/cocoaDemo/bin-python-main.m",
|
| - "Twisted/doc/examples/cocoaDemo/English.lproj/InfoPlist.strings",
|
| - "Twisted/doc/examples/cocoaDemo/English.lproj/MainMenu.nib/classes.nib",
|
| - "Twisted/doc/examples/cocoaDemo/English.lproj/MainMenu.nib/info.nib",
|
| - "Twisted/doc/examples/cocoaDemo/English.lproj/MainMenu.nib/keyedobjects.nib",
|
| - "Twisted/doc/examples/cocoaDemo/cocoaDemo.pbproj/project.pbxproj"]))
|
| - self.assertEqual(c.comments,
|
| - "Directories break debian build script, waiting for reasonable fix\n")
|
| - self.assertEqual(c.isdir, 0)
|
| -
|
| - def testMsg8(self):
|
| - # files outside Twisted/
|
| - c = self.get("mail/freshcvs.8")
|
| - self.assertEqual(c.who, "acapnotic")
|
| - self.assertEqual(set(c.files), set([ "CVSROOT/freshCfg" ]))
|
| - self.assertEqual(c.comments, "it doesn't work with invalid syntax\n")
|
| - self.assertEqual(c.isdir, 0)
|
| -
|
| - def testMsg9(self):
|
| - # also creates a directory
|
| - c = self.get("mail/freshcvs.9")
|
| - self.assertEqual(c.who, "exarkun")
|
| - self.assertEqual(set(c.files), set(["Twisted/sandbox/exarkun/persist-plugin"]))
|
| - self.assertEqual(c.comments,
|
| - "Directory /cvs/Twisted/sandbox/exarkun/persist-plugin added to the repository\n")
|
| - self.assertEqual(c.isdir, 1)
|
| -
|
| -
|
| -class TestFreshCVS_Prefix(unittest.TestCase):
|
| - def get(self, msg):
|
| - msg = util.sibpath(__file__, msg)
|
| - s = mail.FCMaildirSource(None)
|
| - return s.parse_file(open(msg, "r"), prefix="Twisted/")
|
| -
|
| - def testMsg1p(self):
|
| - c = self.get("mail/freshcvs.1")
|
| - self.assertEqual(c.who, "moshez")
|
| - self.assertEqual(set(c.files), set(["debian/python-twisted.menu.in"]))
|
| - self.assertEqual(c.comments, "Instance massenger, apparently\n")
|
| -
|
| - def testMsg2p(self):
|
| - c = self.get("mail/freshcvs.2")
|
| - self.assertEqual(c.who, "itamarst")
|
| - self.assertEqual(set(c.files), set(["twisted/web/woven/form.py",
|
| - "twisted/python/formmethod.py"]))
|
| - self.assertEqual(c.comments,
|
| - "submit formmethod now subclass of Choice\n")
|
| -
|
| - def testMsg3p(self):
|
| - # same as msg2 but missing the ViewCVS section
|
| - c = self.get("mail/freshcvs.3")
|
| - self.assertEqual(c.who, "itamarst")
|
| - self.assertEqual(set(c.files), set(["twisted/web/woven/form.py",
|
| - "twisted/python/formmethod.py"]))
|
| - self.assertEqual(c.comments,
|
| - "submit formmethod now subclass of Choice\n")
|
| -
|
| - def testMsg4p(self):
|
| - # same as msg3 but also missing CVS patch section
|
| - c = self.get("mail/freshcvs.4")
|
| - self.assertEqual(c.who, "itamarst")
|
| - self.assertEqual(set(c.files), set(["twisted/web/woven/form.py",
|
| - "twisted/python/formmethod.py"]))
|
| - self.assertEqual(c.comments,
|
| - "submit formmethod now subclass of Choice\n")
|
| -
|
| - def testMsg5p(self):
|
| - # creates a directory
|
| - c = self.get("mail/freshcvs.5")
|
| - self.assertEqual(c.who, "etrepum")
|
| - self.assertEqual(set(c.files), set(["doc/examples/cocoaDemo"]))
|
| - self.assertEqual(c.comments,
|
| - "Directory /cvs/Twisted/doc/examples/cocoaDemo added to the repository\n")
|
| - self.assertEqual(c.isdir, 1)
|
| -
|
| - def testMsg6p(self):
|
| - # adds files
|
| - c = self.get("mail/freshcvs.6")
|
| - self.assertEqual(c.who, "etrepum")
|
| - self.assertEqual(set(c.files), set([
|
| - "doc/examples/cocoaDemo/MyAppDelegate.py",
|
| - "doc/examples/cocoaDemo/__main__.py",
|
| - "doc/examples/cocoaDemo/bin-python-main.m",
|
| - "doc/examples/cocoaDemo/English.lproj/InfoPlist.strings",
|
| - "doc/examples/cocoaDemo/English.lproj/MainMenu.nib/classes.nib",
|
| - "doc/examples/cocoaDemo/English.lproj/MainMenu.nib/info.nib",
|
| - "doc/examples/cocoaDemo/English.lproj/MainMenu.nib/keyedobjects.nib",
|
| - "doc/examples/cocoaDemo/cocoaDemo.pbproj/project.pbxproj"]))
|
| - self.assertEqual(c.comments,
|
| - "Cocoa (OS X) clone of the QT demo, using polling reactor\n\nRequires pyobjc ( http://pyobjc.sourceforge.net ), it's not much different than the template project. The reactor is iterated periodically by a repeating NSTimer.\n")
|
| - self.assertEqual(c.isdir, 0)
|
| -
|
| - def testMsg7p(self):
|
| - # deletes files
|
| - c = self.get("mail/freshcvs.7")
|
| - self.assertEqual(c.who, "etrepum")
|
| - self.assertEqual(set(c.files), set([
|
| - "doc/examples/cocoaDemo/MyAppDelegate.py",
|
| - "doc/examples/cocoaDemo/__main__.py",
|
| - "doc/examples/cocoaDemo/bin-python-main.m",
|
| - "doc/examples/cocoaDemo/English.lproj/InfoPlist.strings",
|
| - "doc/examples/cocoaDemo/English.lproj/MainMenu.nib/classes.nib",
|
| - "doc/examples/cocoaDemo/English.lproj/MainMenu.nib/info.nib",
|
| - "doc/examples/cocoaDemo/English.lproj/MainMenu.nib/keyedobjects.nib",
|
| - "doc/examples/cocoaDemo/cocoaDemo.pbproj/project.pbxproj"]))
|
| - self.assertEqual(c.comments,
|
| - "Directories break debian build script, waiting for reasonable fix\n")
|
| - self.assertEqual(c.isdir, 0)
|
| -
|
| - def testMsg8p(self):
|
| - # files outside Twisted/
|
| - c = self.get("mail/freshcvs.8")
|
| - self.assertEqual(c, None)
|
| -
|
| -
|
| -class TestSyncmail(unittest.TestCase):
|
| - def get(self, msg):
|
| - msg = util.sibpath(__file__, msg)
|
| - s = mail.SyncmailMaildirSource(None)
|
| - return s.parse_file(open(msg, "r"), prefix="buildbot/")
|
| -
|
| - def getNoPrefix(self, msg):
|
| - msg = util.sibpath(__file__, msg)
|
| - s = mail.SyncmailMaildirSource(None)
|
| - return s.parse_file(open(msg, "r"))
|
| -
|
| - def testMsgS1(self):
|
| - c = self.get("mail/syncmail.1")
|
| - self.failUnless(c is not None)
|
| - self.assertEqual(c.who, "warner")
|
| - self.assertEqual(set(c.files), set(["buildbot/changes/freshcvsmail.py"]))
|
| - self.assertEqual(c.comments,
|
| - "remove leftover code, leave a temporary compatibility import. Note! Start\nimporting FCMaildirSource from changes.mail instead of changes.freshcvsmail\n")
|
| - self.assertEqual(c.isdir, 0)
|
| -
|
| - def testMsgS2(self):
|
| - c = self.get("mail/syncmail.2")
|
| - self.assertEqual(c.who, "warner")
|
| - self.assertEqual(set(c.files), set(["ChangeLog"]))
|
| - self.assertEqual(c.comments, "\t* NEWS: started adding new features\n")
|
| - self.assertEqual(c.isdir, 0)
|
| -
|
| - def testMsgS3(self):
|
| - c = self.get("mail/syncmail.3")
|
| - self.failUnless(c == None)
|
| -
|
| - def testMsgS4(self):
|
| - c = self.get("mail/syncmail.4")
|
| - self.assertEqual(c.who, "warner")
|
| - self.assertEqual(set(c.files),
|
| - set(["test/mail/syncmail.1",
|
| - "test/mail/syncmail.2",
|
| - "test/mail/syncmail.3"]))
|
| - self.assertEqual(c.comments, "test cases for syncmail parser\n")
|
| - self.assertEqual(c.isdir, 0)
|
| - self.assertEqual(c.branch, None)
|
| -
|
| - # tests a tag
|
| - def testMsgS5(self):
|
| - c = self.getNoPrefix("mail/syncmail.5")
|
| - self.failUnless(c)
|
| - self.assertEqual(c.who, "thomas")
|
| - self.assertEqual(set(c.files),
|
| - set(['test1/MANIFEST',
|
| - 'test1/Makefile.am',
|
| - 'test1/autogen.sh',
|
| - 'test1/configure.in']))
|
| - self.assertEqual(c.branch, "BRANCH-DEVEL")
|
| - self.assertEqual(c.isdir, 0)
|
| -
|
| -
|
| -class TestSVNCommitEmail(unittest.TestCase):
|
| - def get(self, msg, prefix):
|
| - msg = util.sibpath(__file__, msg)
|
| - s = mail.SVNCommitEmailMaildirSource(None)
|
| - return s.parse_file(open(msg, "r"), prefix)
|
| -
|
| - def test1(self):
|
| - c = self.get("mail/svn-commit.1", "spamassassin/trunk/")
|
| - self.failUnless(c)
|
| - self.failUnlessEqual(c.who, "felicity")
|
| - self.failUnlessEqual(set(c.files), set(["sa-update.raw"]))
|
| - self.failUnlessEqual(c.branch, None)
|
| - self.failUnlessEqual(c.comments,
|
| - "bug 4864: remove extraneous front-slash "
|
| - "from gpghomedir path\n")
|
| -
|
| - def test2a(self):
|
| - c = self.get("mail/svn-commit.2", "spamassassin/trunk/")
|
| - self.failIf(c)
|
| -
|
| - def test2b(self):
|
| - c = self.get("mail/svn-commit.2", "spamassassin/branches/3.1/")
|
| - self.failUnless(c)
|
| - self.failUnlessEqual(c.who, "sidney")
|
| - self.failUnlessEqual(set(c.files),
|
| - set(["lib/Mail/SpamAssassin/Timeout.pm",
|
| - "MANIFEST",
|
| - "lib/Mail/SpamAssassin/Logger.pm",
|
| - "lib/Mail/SpamAssassin/Plugin/DCC.pm",
|
| - "lib/Mail/SpamAssassin/Plugin/DomainKeys.pm",
|
| - "lib/Mail/SpamAssassin/Plugin/Pyzor.pm",
|
| - "lib/Mail/SpamAssassin/Plugin/Razor2.pm",
|
| - "lib/Mail/SpamAssassin/Plugin/SPF.pm",
|
| - "lib/Mail/SpamAssassin/SpamdForkScaling.pm",
|
| - "spamd/spamd.raw",
|
| - ]))
|
| - self.failUnlessEqual(c.comments,
|
| - "Bug 4696: consolidated fixes for timeout bugs\n")
|
| -
|
| -
|
| -class TestBzrLaunchpadEmail(unittest.TestCase):
|
| - def get(self, msg, **kwargs):
|
| - msg = util.sibpath(__file__, "mail/" + msg)
|
| - s = mail.BzrLaunchpadEmailMaildirSource(None, None, **kwargs)
|
| - if not os.path.exists(msg):
|
| - raise unittest.SkipTest("'%s' not found" % msg)
|
| - return s.parse_file(open(msg, "r"))
|
| -
|
| - # Modified file
|
| - def test1(self):
|
| - c = self.get("launchpad.1")
|
| - self.failUnlessEqual(c.revision, "2700")
|
| - self.failUnlessEqual(c.who, "Kristian Nielsen <knielsen@loke>")
|
| - self.failUnlessEqual(c.branch, "lp:~knielsen/maria/tmp-buildbot-test")
|
| - self.failUnlessEqual(time.gmtime(c.when)[0:6], (2009, 5, 15, 6, 40, 43))
|
| - self.failUnlessEqual(c.comments, "test commit 2\n")
|
| - self.failUnlessEqual(set(c.files), set(["README MODIFIED",
|
| - "Makefile.am MODIFIED"]))
|
| -
|
| - # Added file and branchMap match with lp:
|
| - def test2(self):
|
| - c = self.get("launchpad.2",
|
| - branchMap = { "lp:~knielsen/maria/tmp-buildbot-test" : "5.1",
|
| - "foobar" : "baz" },
|
| - defaultBranch = "bogux")
|
| - self.failUnlessEqual(c.revision, "2701")
|
| - self.failUnlessEqual(c.who, "Kristian Nielsen <knielsen@loke>")
|
| - self.failUnlessEqual(c.branch, "5.1")
|
| - self.failUnlessEqual(time.gmtime(c.when)[0:6], (2009, 5, 15, 8, 35, 43))
|
| - self.failUnlessEqual(c.comments, "test add file\n")
|
| - self.failUnlessEqual(set(c.files), set(["test-add-file ADDED"]))
|
| -
|
| - # Rename file and branchMap match without lp:
|
| - def test3(self):
|
| - c = self.get("launchpad.3",
|
| - branchMap = { "~knielsen/maria/tmp-buildbot-test" : "5.1",
|
| - "foobar" : "baz" },
|
| - defaultBranch = "bogux")
|
| - self.failUnlessEqual(c.revision, "2702")
|
| - self.failUnlessEqual(c.who, "Kristian Nielsen <knielsen@loke>")
|
| - self.failUnlessEqual(c.branch, "5.1")
|
| - self.failUnlessEqual(time.gmtime(c.when)[0:6], (2009, 5, 15, 8, 36, 24))
|
| - self.failUnlessEqual(c.comments, "test rename file\n")
|
| - self.failUnlessEqual(set(c.files), set(["test-add-file RENAMED test-rename-file"]))
|
| -
|
| - # Remove file and branchMap fallback to defaultBranch
|
| - def test4(self):
|
| - c = self.get("launchpad.4",
|
| - branchMap = { "lp::~knielsen/maria/tmp-buildbot-test" : "5.1",
|
| - "foobar" : "baz" },
|
| - defaultBranch = "db")
|
| - self.failUnlessEqual(c.revision, "2703")
|
| - self.failUnlessEqual(c.who, "Kristian Nielsen <knielsen@loke>")
|
| - self.failUnlessEqual(c.branch, "db")
|
| - self.failUnlessEqual(time.gmtime(c.when)[0:6], (2009, 5, 15, 8, 36, 35))
|
| - self.failUnlessEqual(c.comments, "test remove file\n")
|
| - self.failUnlessEqual(set(c.files), set(["test-rename-file REMOVED"]))
|
| -
|
| - # MIME decoding of message body and branch name fallback to repository name
|
| - def test5(self):
|
| - c = self.get("launchpad.5",
|
| - branchMap = { "lp::~knielsen/maria/tmp-buildbot-test" : "5.1",
|
| - "foobar" : "baz" })
|
| - self.failUnlessEqual(c.revision, "2704")
|
| - self.failUnlessEqual(c.who, "Kristian Nielsen <knielsen@loke>")
|
| - self.failUnlessEqual(c.branch, "lp:~knielsen/maria/tmp-buildbot-test")
|
| - self.failUnlessEqual(time.gmtime(c.when)[0:6], (2009, 5, 15, 8, 39, 58))
|
| - self.failUnlessEqual(c.comments, "10\n")
|
| - self.failUnlessEqual(set(c.files), set(["tricky=>rename ADDED"]))
|
| -
|
| - # Both rename and modify in same message.
|
| - def test6(self):
|
| - c = self.get("launchpad.6")
|
| - self.failUnlessEqual(c.revision, "2706")
|
| - self.failUnlessEqual(c.who, "Kristian Nielsen <knielsen@loke>")
|
| - self.failUnlessEqual(c.branch, "lp:~knielsen/maria/tmp-buildbot-test")
|
| - self.failUnlessEqual(time.gmtime(c.when)[0:6], (2009, 5, 15, 8, 47, 13))
|
| - self.failUnlessEqual(c.comments, "rename+mod\n")
|
| - self.failUnlessEqual(set(c.files),
|
| - set(["renamed with => tricky <= name RENAMED better_name.txt",
|
| - "better_name.txt MODIFIED"]))
|
| -
|
| - # Test equality comparison (for working config reload).
|
| - def test_bzr_mail_reload(self):
|
| - s0 = mail.BzrLaunchpadEmailMaildirSource("/dir1")
|
| - s1 = mail.BzrLaunchpadEmailMaildirSource("/dir2")
|
| - self.failIfEqual(s0,s1)
|
| - s2 = mail.BzrLaunchpadEmailMaildirSource("/dir1", prefix = "lp:")
|
| - self.failIfEqual(s0,s2)
|
| - s3 = mail.BzrLaunchpadEmailMaildirSource("/dir1", prefix = "pl:")
|
| - self.failIfEqual(s2,s3)
|
| - s4 = mail.BzrLaunchpadEmailMaildirSource("/dir1",
|
| - branchMap = { "a" : "A" })
|
| - self.failIfEqual(s0,s4)
|
| - s5 = mail.BzrLaunchpadEmailMaildirSource("/dir1",
|
| - branchMap = { "a" : "A", "b" : "B" })
|
| - self.failIfEqual(s4,s5)
|
| - s6 = mail.BzrLaunchpadEmailMaildirSource("/dir1",
|
| - defaultBranch = "b1")
|
| - self.failIfEqual(s0,s6)
|
| - s7 = mail.BzrLaunchpadEmailMaildirSource("/dir1",
|
| - defaultBranch = "b2")
|
| - self.failIfEqual(s6,s7)
|
| - s8 = mail.BzrLaunchpadEmailMaildirSource("/dir1",
|
| - prefix = "lp",
|
| - branchMap = { "c" : "C" },
|
| - defaultBranch = "b3")
|
| - self.failIfEqual(s6,s8)
|
| - s9 = mail.BzrLaunchpadEmailMaildirSource("/dir1",
|
| - prefix = "lp",
|
| - branchMap = { "c" : "C" },
|
| - defaultBranch = "b3")
|
| - s9.dummy = 42
|
| - self.assertEqual(s8,s9)
|
|
|