OLD | NEW |
1 #!/usr/bin/python | 1 #!/usr/bin/python |
2 # Copyright (c) 2009 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2009 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 """Unit tests for gcl.py.""" | 6 """Unit tests for gcl.py.""" |
7 | 7 |
8 import StringIO | 8 import StringIO |
9 import os | 9 import os |
10 import sys | 10 import sys |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
100 files = [('M', 'foo'), ('A', 'bar')] | 100 files = [('M', 'foo'), ('A', 'bar')] |
101 o = gcl.ChangeInfo('name2', 'issue2', 'description2', files) | 101 o = gcl.ChangeInfo('name2', 'issue2', 'description2', files) |
102 self.assertEquals(o.name, 'name2') | 102 self.assertEquals(o.name, 'name2') |
103 self.assertEquals(o.issue, 'issue2') | 103 self.assertEquals(o.issue, 'issue2') |
104 self.assertEquals(o.description, 'description2') | 104 self.assertEquals(o.description, 'description2') |
105 self.assertEquals(o.files, files) | 105 self.assertEquals(o.files, files) |
106 self.assertEquals(o.patch, None) | 106 self.assertEquals(o.patch, None) |
107 self.assertEquals(o.FileList(), ['foo', 'bar']) | 107 self.assertEquals(o.FileList(), ['foo', 'bar']) |
108 | 108 |
109 | 109 |
| 110 class UploadCLUnittest(GclTestsBase): |
| 111 def setUp(self): |
| 112 GclTestsBase.setUp(self) |
| 113 self.mox = mox.Mox() |
| 114 self._os_chdir = gcl.os.chdir |
| 115 gcl.os.chdir = self.mox.CreateMockAnything() |
| 116 self._os_close = gcl.os.close |
| 117 gcl.os.close = self.mox.CreateMockAnything() |
| 118 self._os_getcwd = gcl.os.getcwd |
| 119 gcl.os.getcwd = self.mox.CreateMockAnything() |
| 120 self._os_remove = gcl.os.remove |
| 121 gcl.os.remove = self.mox.CreateMockAnything() |
| 122 self._os_write = gcl.os.write |
| 123 gcl.os.write = self.mox.CreateMockAnything() |
| 124 self._tempfile = gcl.tempfile |
| 125 gcl.tempfile = self.mox.CreateMockAnything() |
| 126 self._upload_RealMain = gcl.upload.RealMain |
| 127 gcl.upload.RealMain = self.mox.CreateMockAnything() |
| 128 self._DoPresubmitChecks = gcl.DoPresubmitChecks |
| 129 gcl.DoPresubmitChecks = self.mox.CreateMockAnything() |
| 130 self._GenerateDiff = gcl.GenerateDiff |
| 131 gcl.GenerateDiff = self.mox.CreateMockAnything() |
| 132 self._GetCodeReviewSetting = gcl.GetCodeReviewSetting |
| 133 gcl.GetCodeReviewSetting = self.mox.CreateMockAnything() |
| 134 self._GetRepositoryRoot = gcl.GetRepositoryRoot |
| 135 gcl.GetRepositoryRoot = self.mox.CreateMockAnything() |
| 136 self._SendToRietveld = gcl.SendToRietveld |
| 137 gcl.SendToRietveld = self.mox.CreateMockAnything() |
| 138 self._TryChange = gcl.TryChange |
| 139 gcl.TryChange = self.mox.CreateMockAnything() |
| 140 |
| 141 def tearDown(self): |
| 142 GclTestsBase.tearDown(self) |
| 143 gcl.os.chdir = self._os_chdir |
| 144 gcl.os.close = self._os_close |
| 145 gcl.os.getcwd = self._os_getcwd |
| 146 gcl.os.remove = self._os_remove |
| 147 gcl.os.write = self._os_write |
| 148 gcl.tempfile = self._tempfile |
| 149 gcl.upload.RealMain = self._upload_RealMain |
| 150 gcl.DoPresubmitChecks = self._DoPresubmitChecks |
| 151 gcl.GenerateDiff = self._GenerateDiff |
| 152 gcl.GetCodeReviewSetting = self._GetCodeReviewSetting |
| 153 gcl.GetRepositoryRoot = self._GetRepositoryRoot |
| 154 gcl.SendToRietveld = self._SendToRietveld |
| 155 gcl.TryChange = self._TryChange |
| 156 |
| 157 def testNew(self): |
| 158 change_info = gcl.ChangeInfo('naame', 'iissue', 'deescription', |
| 159 ['aa', 'bb']) |
| 160 change_info.Save = self.mox.CreateMockAnything() |
| 161 args = ['--foo=bar'] |
| 162 change_info.Save() |
| 163 gcl.DoPresubmitChecks(change_info, committing=False).AndReturn(True) |
| 164 gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('my_server') |
| 165 gcl.os.getcwd().AndReturn('somewhere') |
| 166 gcl.os.chdir(gcl.GetRepositoryRoot().AndReturn(None)) |
| 167 gcl.GenerateDiff(change_info.FileList()) |
| 168 gcl.upload.RealMain(['upload.py', '-y', '--server=my_server', '--foo=bar', |
| 169 "--message=''", '--issue=iissue'], change_info.patch).AndReturn(("1", |
| 170 "2")) |
| 171 gcl.SendToRietveld("/lint/issue%s_%s" % ('1', '2'), timeout=0.5) |
| 172 gcl.GetCodeReviewSetting('TRY_ON_UPLOAD').AndReturn('True') |
| 173 gcl.TryChange(change_info, |
| 174 ['--issue', '1', '--patchset', '2'], |
| 175 swallow_exception=True) |
| 176 gcl.os.chdir('somewhere') |
| 177 self.mox.ReplayAll() |
| 178 gcl.UploadCL(change_info, args) |
| 179 self.mox.VerifyAll() |
| 180 |
| 181 def testServerOverride(self): |
| 182 change_info = gcl.ChangeInfo('naame', '', 'deescription', |
| 183 ['aa', 'bb']) |
| 184 change_info.Save = self.mox.CreateMockAnything() |
| 185 args = ['--server=a'] |
| 186 change_info.Save() |
| 187 gcl.DoPresubmitChecks(change_info, committing=False).AndReturn(True) |
| 188 gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('my_server') |
| 189 gcl.tempfile.mkstemp(text=True).AndReturn((42, 'descfile')) |
| 190 gcl.os.write(42, change_info.description) |
| 191 gcl.os.close(42) |
| 192 gcl.GetCodeReviewSetting('CC_LIST') |
| 193 gcl.os.getcwd().AndReturn('somewhere') |
| 194 gcl.os.chdir(gcl.GetRepositoryRoot().AndReturn(None)) |
| 195 gcl.GenerateDiff(change_info.FileList()) |
| 196 gcl.upload.RealMain(['upload.py', '-y', '--server=my_server', '--server=a', |
| 197 "--description_file=descfile", |
| 198 "--message=deescription"], change_info.patch).AndReturn(("1", "2")) |
| 199 gcl.os.remove('descfile') |
| 200 gcl.SendToRietveld("/lint/issue%s_%s" % ('1', '2'), timeout=0.5) |
| 201 #gcl.GetCodeReviewSetting('TRY_ON_UPLOAD').AndReturn('True') |
| 202 #gcl.TryChange(change_info, |
| 203 # ['--issue', '1', '--patchset', '2'], |
| 204 # swallow_exception=True) |
| 205 gcl.os.chdir('somewhere') |
| 206 self.mox.ReplayAll() |
| 207 gcl.UploadCL(change_info, args) |
| 208 self.mox.VerifyAll() |
| 209 |
| 210 def testNoTry(self): |
| 211 change_info = gcl.ChangeInfo('naame', '', 'deescription', |
| 212 ['aa', 'bb']) |
| 213 change_info.Save = self.mox.CreateMockAnything() |
| 214 args = ['--no-try'] |
| 215 change_info.Save() |
| 216 gcl.DoPresubmitChecks(change_info, committing=False).AndReturn(True) |
| 217 gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('my_server') |
| 218 gcl.tempfile.mkstemp(text=True).AndReturn((42, 'descfile')) |
| 219 gcl.os.write(42, change_info.description) |
| 220 gcl.os.close(42) |
| 221 gcl.GetCodeReviewSetting('CC_LIST') |
| 222 gcl.os.getcwd().AndReturn('somewhere') |
| 223 gcl.os.chdir(gcl.GetRepositoryRoot().AndReturn(None)) |
| 224 gcl.GenerateDiff(change_info.FileList()) |
| 225 gcl.upload.RealMain(['upload.py', '-y', '--server=my_server', |
| 226 "--description_file=descfile", |
| 227 "--message=deescription"], change_info.patch).AndReturn(("1", "2")) |
| 228 gcl.os.remove('descfile') |
| 229 gcl.SendToRietveld("/lint/issue%s_%s" % ('1', '2'), timeout=0.5) |
| 230 gcl.os.chdir('somewhere') |
| 231 self.mox.ReplayAll() |
| 232 gcl.UploadCL(change_info, args) |
| 233 self.mox.VerifyAll() |
| 234 |
| 235 def testNormal(self): |
| 236 change_info = gcl.ChangeInfo('naame', '', 'deescription', |
| 237 ['aa', 'bb']) |
| 238 change_info.Save = self.mox.CreateMockAnything() |
| 239 args = [] |
| 240 change_info.Save() |
| 241 gcl.DoPresubmitChecks(change_info, committing=False).AndReturn(True) |
| 242 gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('my_server') |
| 243 gcl.tempfile.mkstemp(text=True).AndReturn((42, 'descfile')) |
| 244 gcl.os.write(42, change_info.description) |
| 245 gcl.os.close(42) |
| 246 gcl.GetCodeReviewSetting('CC_LIST') |
| 247 gcl.os.getcwd().AndReturn('somewhere') |
| 248 gcl.os.chdir(gcl.GetRepositoryRoot().AndReturn(None)) |
| 249 gcl.GenerateDiff(change_info.FileList()) |
| 250 gcl.upload.RealMain(['upload.py', '-y', '--server=my_server', |
| 251 "--description_file=descfile", |
| 252 "--message=deescription"], change_info.patch).AndReturn(("1", "2")) |
| 253 gcl.os.remove('descfile') |
| 254 gcl.SendToRietveld("/lint/issue%s_%s" % ('1', '2'), timeout=0.5) |
| 255 gcl.GetCodeReviewSetting('TRY_ON_UPLOAD').AndReturn('True') |
| 256 gcl.TryChange(change_info, |
| 257 ['--issue', '1', '--patchset', '2'], |
| 258 swallow_exception=True) |
| 259 gcl.os.chdir('somewhere') |
| 260 self.mox.ReplayAll() |
| 261 gcl.UploadCL(change_info, args) |
| 262 self.mox.VerifyAll() |
| 263 |
| 264 |
110 if __name__ == '__main__': | 265 if __name__ == '__main__': |
111 unittest.main() | 266 unittest.main() |
OLD | NEW |