remove a lot of unused imports, marked by pyflakes
[buildbot.git] / buildbot / test / test_mailparse.py
blob33308259f797c25834f0a68f3ada764c6f29f9b5
1 # -*- test-case-name: buildbot.test.test_mailparse -*-
3 from twisted.trial import unittest
4 from twisted.python import util
5 from buildbot.changes.mail import parseFreshCVSMail, parseSyncmail
7 class Test1(unittest.TestCase):
9 def get(self, msg):
10 msg = util.sibpath(__file__, msg)
11 return parseFreshCVSMail(None, open(msg, "r"))
13 def testMsg1(self):
14 c = self.get("mail/msg1")
15 self.assertEqual(c.who, "moshez")
16 self.assertEqual(c.files, ["Twisted/debian/python-twisted.menu.in"])
17 self.assertEqual(c.comments, "Instance massenger, apparently\n")
18 self.assertEqual(c.isdir, 0)
20 def testMsg2(self):
21 c = self.get("mail/msg2")
22 self.assertEqual(c.who, "itamarst")
23 self.assertEqual(c.files, ["Twisted/twisted/web/woven/form.py",
24 "Twisted/twisted/python/formmethod.py"])
25 self.assertEqual(c.comments,
26 "submit formmethod now subclass of Choice\n")
27 self.assertEqual(c.isdir, 0)
29 def testMsg3(self):
30 # same as msg2 but missing the ViewCVS section
31 c = self.get("mail/msg3")
32 self.assertEqual(c.who, "itamarst")
33 self.assertEqual(c.files, ["Twisted/twisted/web/woven/form.py",
34 "Twisted/twisted/python/formmethod.py"])
35 self.assertEqual(c.comments,
36 "submit formmethod now subclass of Choice\n")
37 self.assertEqual(c.isdir, 0)
39 def testMsg4(self):
40 # same as msg3 but also missing CVS patch section
41 c = self.get("mail/msg4")
42 self.assertEqual(c.who, "itamarst")
43 self.assertEqual(c.files, ["Twisted/twisted/web/woven/form.py",
44 "Twisted/twisted/python/formmethod.py"])
45 self.assertEqual(c.comments,
46 "submit formmethod now subclass of Choice\n")
47 self.assertEqual(c.isdir, 0)
49 def testMsg5(self):
50 # creates a directory
51 c = self.get("mail/msg5")
52 self.assertEqual(c.who, "etrepum")
53 self.assertEqual(c.files, ["Twisted/doc/examples/cocoaDemo"])
54 self.assertEqual(c.comments,
55 "Directory /cvs/Twisted/doc/examples/cocoaDemo added to the repository\n")
56 self.assertEqual(c.isdir, 1)
58 def testMsg6(self):
59 # adds files
60 c = self.get("mail/msg6")
61 self.assertEqual(c.who, "etrepum")
62 self.assertEqual(c.files, [
63 "Twisted/doc/examples/cocoaDemo/MyAppDelegate.py",
64 "Twisted/doc/examples/cocoaDemo/__main__.py",
65 "Twisted/doc/examples/cocoaDemo/bin-python-main.m",
66 "Twisted/doc/examples/cocoaDemo/English.lproj/InfoPlist.strings",
67 "Twisted/doc/examples/cocoaDemo/English.lproj/MainMenu.nib/classes.nib",
68 "Twisted/doc/examples/cocoaDemo/English.lproj/MainMenu.nib/info.nib",
69 "Twisted/doc/examples/cocoaDemo/English.lproj/MainMenu.nib/keyedobjects.nib",
70 "Twisted/doc/examples/cocoaDemo/cocoaDemo.pbproj/project.pbxproj"])
71 self.assertEqual(c.comments,
72 "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")
73 self.assertEqual(c.isdir, 0)
75 def testMsg7(self):
76 # deletes files
77 c = self.get("mail/msg7")
78 self.assertEqual(c.who, "etrepum")
79 self.assertEqual(c.files, [
80 "Twisted/doc/examples/cocoaDemo/MyAppDelegate.py",
81 "Twisted/doc/examples/cocoaDemo/__main__.py",
82 "Twisted/doc/examples/cocoaDemo/bin-python-main.m",
83 "Twisted/doc/examples/cocoaDemo/English.lproj/InfoPlist.strings",
84 "Twisted/doc/examples/cocoaDemo/English.lproj/MainMenu.nib/classes.nib",
85 "Twisted/doc/examples/cocoaDemo/English.lproj/MainMenu.nib/info.nib",
86 "Twisted/doc/examples/cocoaDemo/English.lproj/MainMenu.nib/keyedobjects.nib",
87 "Twisted/doc/examples/cocoaDemo/cocoaDemo.pbproj/project.pbxproj"])
88 self.assertEqual(c.comments,
89 "Directories break debian build script, waiting for reasonable fix\n")
90 self.assertEqual(c.isdir, 0)
92 def testMsg8(self):
93 # files outside Twisted/
94 c = self.get("mail/msg8")
95 self.assertEqual(c.who, "acapnotic")
96 self.assertEqual(c.files, [ "CVSROOT/freshCfg" ])
97 self.assertEqual(c.comments, "it doesn't work with invalid syntax\n")
98 self.assertEqual(c.isdir, 0)
100 def testMsg9(self):
101 # also creates a directory
102 c = self.get("mail/msg9")
103 self.assertEqual(c.who, "exarkun")
104 self.assertEqual(c.files, ["Twisted/sandbox/exarkun/persist-plugin"])
105 self.assertEqual(c.comments,
106 "Directory /cvs/Twisted/sandbox/exarkun/persist-plugin added to the repository\n")
107 self.assertEqual(c.isdir, 1)
110 class Test2(unittest.TestCase):
111 def get(self, msg):
112 msg = util.sibpath(__file__, msg)
113 return parseFreshCVSMail(None, open(msg, "r"), prefix="Twisted")
115 def testMsg1p(self):
116 c = self.get("mail/msg1")
117 self.assertEqual(c.who, "moshez")
118 self.assertEqual(c.files, ["debian/python-twisted.menu.in"])
119 self.assertEqual(c.comments, "Instance massenger, apparently\n")
121 def testMsg2p(self):
122 c = self.get("mail/msg2")
123 self.assertEqual(c.who, "itamarst")
124 self.assertEqual(c.files, ["twisted/web/woven/form.py",
125 "twisted/python/formmethod.py"])
126 self.assertEqual(c.comments,
127 "submit formmethod now subclass of Choice\n")
129 def testMsg3p(self):
130 # same as msg2 but missing the ViewCVS section
131 c = self.get("mail/msg3")
132 self.assertEqual(c.who, "itamarst")
133 self.assertEqual(c.files, ["twisted/web/woven/form.py",
134 "twisted/python/formmethod.py"])
135 self.assertEqual(c.comments,
136 "submit formmethod now subclass of Choice\n")
138 def testMsg4p(self):
139 # same as msg3 but also missing CVS patch section
140 c = self.get("mail/msg4")
141 self.assertEqual(c.who, "itamarst")
142 self.assertEqual(c.files, ["twisted/web/woven/form.py",
143 "twisted/python/formmethod.py"])
144 self.assertEqual(c.comments,
145 "submit formmethod now subclass of Choice\n")
147 def testMsg5p(self):
148 # creates a directory
149 c = self.get("mail/msg5")
150 self.assertEqual(c.who, "etrepum")
151 self.assertEqual(c.files, ["doc/examples/cocoaDemo"])
152 self.assertEqual(c.comments,
153 "Directory /cvs/Twisted/doc/examples/cocoaDemo added to the repository\n")
154 self.assertEqual(c.isdir, 1)
156 def testMsg6p(self):
157 # adds files
158 c = self.get("mail/msg6")
159 self.assertEqual(c.who, "etrepum")
160 self.assertEqual(c.files, [
161 "doc/examples/cocoaDemo/MyAppDelegate.py",
162 "doc/examples/cocoaDemo/__main__.py",
163 "doc/examples/cocoaDemo/bin-python-main.m",
164 "doc/examples/cocoaDemo/English.lproj/InfoPlist.strings",
165 "doc/examples/cocoaDemo/English.lproj/MainMenu.nib/classes.nib",
166 "doc/examples/cocoaDemo/English.lproj/MainMenu.nib/info.nib",
167 "doc/examples/cocoaDemo/English.lproj/MainMenu.nib/keyedobjects.nib",
168 "doc/examples/cocoaDemo/cocoaDemo.pbproj/project.pbxproj"])
169 self.assertEqual(c.comments,
170 "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")
171 self.assertEqual(c.isdir, 0)
173 def testMsg7p(self):
174 # deletes files
175 c = self.get("mail/msg7")
176 self.assertEqual(c.who, "etrepum")
177 self.assertEqual(c.files, [
178 "doc/examples/cocoaDemo/MyAppDelegate.py",
179 "doc/examples/cocoaDemo/__main__.py",
180 "doc/examples/cocoaDemo/bin-python-main.m",
181 "doc/examples/cocoaDemo/English.lproj/InfoPlist.strings",
182 "doc/examples/cocoaDemo/English.lproj/MainMenu.nib/classes.nib",
183 "doc/examples/cocoaDemo/English.lproj/MainMenu.nib/info.nib",
184 "doc/examples/cocoaDemo/English.lproj/MainMenu.nib/keyedobjects.nib",
185 "doc/examples/cocoaDemo/cocoaDemo.pbproj/project.pbxproj"])
186 self.assertEqual(c.comments,
187 "Directories break debian build script, waiting for reasonable fix\n")
188 self.assertEqual(c.isdir, 0)
190 def testMsg8p(self):
191 # files outside Twisted/
192 c = self.get("mail/msg8")
193 self.assertEqual(c, None)
196 class Test3(unittest.TestCase):
197 def get(self, msg):
198 msg = util.sibpath(__file__, msg)
199 return parseSyncmail(None, open(msg, "r"), prefix="buildbot")
201 def getNoPrefix(self, msg):
202 msg = util.sibpath(__file__, msg)
203 return parseSyncmail(None, open(msg, "r"))
205 def testMsgS1(self):
206 c = self.get("mail/syncmail.1")
207 self.failUnless(c is not None)
208 self.assertEqual(c.who, "warner")
209 self.assertEqual(c.files, ["buildbot/changes/freshcvsmail.py"])
210 self.assertEqual(c.comments,
211 "remove leftover code, leave a temporary compatibility import. Note! Start\nimporting FCMaildirSource from changes.mail instead of changes.freshcvsmail\n")
212 self.assertEqual(c.isdir, 0)
214 def testMsgS2(self):
215 c = self.get("mail/syncmail.2")
216 self.assertEqual(c.who, "warner")
217 self.assertEqual(c.files, ["ChangeLog"])
218 self.assertEqual(c.comments, "\t* NEWS: started adding new features\n")
219 self.assertEqual(c.isdir, 0)
221 def testMsgS3(self):
222 c = self.get("mail/syncmail.3")
223 self.failUnless(c == None)
225 def testMsgS4(self):
226 c = self.get("mail/syncmail.4")
227 self.assertEqual(c.who, "warner")
228 self.assertEqual(c.files, ["test/mail/syncmail.1",
229 "test/mail/syncmail.2",
230 "test/mail/syncmail.3"
232 self.assertEqual(c.comments, "test cases for syncmail parser\n")
233 self.assertEqual(c.isdir, 0)
234 self.assertEqual(c.branch, None)
236 # tests a tag
237 def testMsgS5(self):
238 c = self.getNoPrefix("mail/syncmail.5")
239 self.failUnless(c)
240 self.assertEqual(c.who, "thomas")
241 self.assertEqual(c.files, ['test1/MANIFEST',
242 'test1/Makefile.am',
243 'test1/autogen.sh',
244 'test1/configure.in'
246 self.assertEqual(c.branch, "BRANCH-DEVEL")
247 self.assertEqual(c.isdir, 0)