Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3)

Side by Side Diff: tests/gclient_scm_test.py

Issue 3338003: Remove scm.SVN.Run() and all stdout argument to more calls. (Closed)
Patch Set: Created 10 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « scm.py ('k') | tests/gclient_smoketest.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # Copyright (c) 2010 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2010 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 gclient_scm.py.""" 6 """Unit tests for gclient_scm.py."""
7 7
8 # Import before super_mox to keep valid references. 8 # Import before super_mox to keep valid references.
9 from os import rename 9 from os import rename
10 from shutil import rmtree 10 from shutil import rmtree
(...skipping 15 matching lines...) Expand all
26 except gclient_scm.gclient_utils.Error, e: 26 except gclient_scm.gclient_utils.Error, e:
27 self.assertEquals(e.args[0], msg) 27 self.assertEquals(e.args[0], msg)
28 else: 28 else:
29 self.fail('%s not raised' % msg) 29 self.fail('%s not raised' % msg)
30 30
31 31
32 class BaseTestCase(GCBaseTestCase): 32 class BaseTestCase(GCBaseTestCase):
33 def setUp(self): 33 def setUp(self):
34 GCBaseTestCase.setUp(self) 34 GCBaseTestCase.setUp(self)
35 self.mox.StubOutWithMock(gclient_scm.gclient_utils, 'CheckCallAndFilter') 35 self.mox.StubOutWithMock(gclient_scm.gclient_utils, 'CheckCallAndFilter')
36 self.mox.StubOutWithMock(gclient_scm.gclient_utils,
37 'CheckCallAndFilterAndHeader')
36 self.mox.StubOutWithMock(gclient_scm.gclient_utils, 'FileRead') 38 self.mox.StubOutWithMock(gclient_scm.gclient_utils, 'FileRead')
37 self.mox.StubOutWithMock(gclient_scm.gclient_utils, 'FileWrite') 39 self.mox.StubOutWithMock(gclient_scm.gclient_utils, 'FileWrite')
38 self.mox.StubOutWithMock(gclient_scm.gclient_utils, 'RemoveDirectory') 40 self.mox.StubOutWithMock(gclient_scm.gclient_utils, 'RemoveDirectory')
39 self._CaptureSVNInfo = gclient_scm.scm.SVN.CaptureInfo 41 self._CaptureSVNInfo = gclient_scm.scm.SVN.CaptureInfo
40 self.mox.StubOutWithMock(gclient_scm.scm.SVN, 'Capture') 42 self.mox.StubOutWithMock(gclient_scm.scm.SVN, 'Capture')
41 self.mox.StubOutWithMock(gclient_scm.scm.SVN, 'CaptureInfo') 43 self.mox.StubOutWithMock(gclient_scm.scm.SVN, 'CaptureInfo')
42 self.mox.StubOutWithMock(gclient_scm.scm.SVN, 'CaptureStatus') 44 self.mox.StubOutWithMock(gclient_scm.scm.SVN, 'CaptureStatus')
43 self.mox.StubOutWithMock(gclient_scm.scm.SVN, 'Run')
44 self.mox.StubOutWithMock(gclient_scm.scm.SVN, 'RunAndGetFileList') 45 self.mox.StubOutWithMock(gclient_scm.scm.SVN, 'RunAndGetFileList')
45 self._scm_wrapper = gclient_scm.CreateSCM 46 self._scm_wrapper = gclient_scm.CreateSCM
46 gclient_scm.sys.stdout.flush = lambda: None 47 gclient_scm.sys.stdout.flush = lambda: None
48 gclient_scm.scm.SVN.current_version = None
47 49
48 50
49 class SVNWrapperTestCase(BaseTestCase): 51 class SVNWrapperTestCase(BaseTestCase):
50 class OptionsObject(object): 52 class OptionsObject(object):
51 def __init__(self, test_case, verbose=False, revision=None): 53 def __init__(self, test_case, verbose=False, revision=None):
52 self.verbose = verbose 54 self.verbose = verbose
53 self.revision = revision 55 self.revision = revision
54 self.manually_grab_svn_rev = True 56 self.manually_grab_svn_rev = True
55 self.deps_os = None 57 self.deps_os = None
56 self.force = False 58 self.force = False
57 self.reset = False 59 self.reset = False
58 self.nohooks = False 60 self.nohooks = False
61 self.stdout = gclient_scm.sys.stdout
59 62
60 def Options(self, *args, **kwargs): 63 def Options(self, *args, **kwargs):
61 return self.OptionsObject(self, *args, **kwargs) 64 return self.OptionsObject(self, *args, **kwargs)
62 65
63 def setUp(self): 66 def setUp(self):
64 BaseTestCase.setUp(self) 67 BaseTestCase.setUp(self)
65 self.root_dir = self.Dir() 68 self.root_dir = self.Dir()
66 self.args = self.Args() 69 self.args = self.Args()
67 self.url = self.Url() 70 self.url = self.Url()
68 self.relpath = 'asf' 71 self.relpath = 'asf'
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 # It'll to a checkout instead. 127 # It'll to a checkout instead.
125 gclient_scm.os.path.exists(gclient_scm.os.path.join(base_path, '.git') 128 gclient_scm.os.path.exists(gclient_scm.os.path.join(base_path, '.git')
126 ).AndReturn(False) 129 ).AndReturn(False)
127 print("\n_____ %s is missing, synching instead" % self.relpath) 130 print("\n_____ %s is missing, synching instead" % self.relpath)
128 # Checkout. 131 # Checkout.
129 gclient_scm.os.path.exists(base_path).AndReturn(False) 132 gclient_scm.os.path.exists(base_path).AndReturn(False)
130 files_list = self.mox.CreateMockAnything() 133 files_list = self.mox.CreateMockAnything()
131 gclient_scm.scm.SVN.RunAndGetFileList(options.verbose, 134 gclient_scm.scm.SVN.RunAndGetFileList(options.verbose,
132 ['checkout', self.url, base_path, 135 ['checkout', self.url, base_path,
133 '--force'], 136 '--force'],
134 self.root_dir, files_list) 137 cwd=self.root_dir,
138 file_list=files_list,
139 stdout=options.stdout)
135 140
136 self.mox.ReplayAll() 141 self.mox.ReplayAll()
137 scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir, 142 scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir,
138 relpath=self.relpath) 143 relpath=self.relpath)
139 scm.revert(options, self.args, files_list) 144 scm.revert(options, self.args, files_list)
140 145
141 def testRevertNone(self): 146 def testRevertNone(self):
142 options = self.Options(verbose=True) 147 options = self.Options(verbose=True)
143 base_path = gclient_scm.os.path.join(self.root_dir, self.relpath) 148 base_path = gclient_scm.os.path.join(self.root_dir, self.relpath)
144 gclient_scm.os.path.isdir(base_path).AndReturn(True) 149 gclient_scm.os.path.isdir(base_path).AndReturn(True)
145 gclient_scm.scm.SVN.CaptureStatus(base_path).AndReturn([]) 150 gclient_scm.scm.SVN.CaptureStatus(base_path).AndReturn([])
146 gclient_scm.scm.SVN.RunAndGetFileList(options.verbose, 151 gclient_scm.scm.SVN.RunAndGetFileList(options.verbose,
147 ['update', '--revision', 'BASE'], 152 ['update', '--revision', 'BASE'],
148 base_path, mox.IgnoreArg()) 153 cwd=base_path,
154 file_list=mox.IgnoreArg(),
155 stdout=options.stdout)
149 156
150 self.mox.ReplayAll() 157 self.mox.ReplayAll()
151 scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir, 158 scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir,
152 relpath=self.relpath) 159 relpath=self.relpath)
153 file_list = [] 160 file_list = []
154 scm.revert(options, self.args, file_list) 161 scm.revert(options, self.args, file_list)
155 162
156 def testRevert2Files(self): 163 def testRevert2Files(self):
157 options = self.Options(verbose=True) 164 options = self.Options(verbose=True)
158 base_path = gclient_scm.os.path.join(self.root_dir, self.relpath) 165 base_path = gclient_scm.os.path.join(self.root_dir, self.relpath)
159 gclient_scm.os.path.isdir(base_path).AndReturn(True) 166 gclient_scm.os.path.isdir(base_path).AndReturn(True)
160 items = [ 167 items = [
161 ('M ', 'a'), 168 ('M ', 'a'),
162 ('A ', 'b'), 169 ('A ', 'b'),
163 ] 170 ]
164 file_path1 = gclient_scm.os.path.join(base_path, 'a') 171 file_path1 = gclient_scm.os.path.join(base_path, 'a')
165 file_path2 = gclient_scm.os.path.join(base_path, 'b') 172 file_path2 = gclient_scm.os.path.join(base_path, 'b')
166 gclient_scm.scm.SVN.CaptureStatus(base_path).AndReturn(items) 173 gclient_scm.scm.SVN.CaptureStatus(base_path).AndReturn(items)
167 gclient_scm.os.path.exists(file_path1).AndReturn(True) 174 gclient_scm.os.path.exists(file_path1).AndReturn(True)
168 gclient_scm.os.path.isfile(file_path1).AndReturn(True) 175 gclient_scm.os.path.isfile(file_path1).AndReturn(True)
169 gclient_scm.os.remove(file_path1) 176 gclient_scm.os.remove(file_path1)
170 gclient_scm.os.path.exists(file_path2).AndReturn(True) 177 gclient_scm.os.path.exists(file_path2).AndReturn(True)
171 gclient_scm.os.path.isfile(file_path2).AndReturn(True) 178 gclient_scm.os.path.isfile(file_path2).AndReturn(True)
172 gclient_scm.os.remove(file_path2) 179 gclient_scm.os.remove(file_path2)
173 gclient_scm.scm.SVN.RunAndGetFileList(options.verbose, 180 gclient_scm.scm.SVN.RunAndGetFileList(options.verbose,
174 ['update', '--revision', 'BASE'], 181 ['update', '--revision', 'BASE'],
175 base_path, mox.IgnoreArg()) 182 cwd=base_path,
183 file_list=mox.IgnoreArg(),
184 stdout=options.stdout)
176 print(gclient_scm.os.path.join(base_path, 'a')) 185 print(gclient_scm.os.path.join(base_path, 'a'))
177 print(gclient_scm.os.path.join(base_path, 'b')) 186 print(gclient_scm.os.path.join(base_path, 'b'))
178 187
179 self.mox.ReplayAll() 188 self.mox.ReplayAll()
180 scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir, 189 scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir,
181 relpath=self.relpath) 190 relpath=self.relpath)
182 file_list = [] 191 file_list = []
183 scm.revert(options, self.args, file_list) 192 scm.revert(options, self.args, file_list)
184 193
185 def testRevertDirectory(self): 194 def testRevertDirectory(self):
186 options = self.Options(verbose=True) 195 options = self.Options(verbose=True)
187 base_path = gclient_scm.os.path.join(self.root_dir, self.relpath) 196 base_path = gclient_scm.os.path.join(self.root_dir, self.relpath)
188 gclient_scm.os.path.isdir(base_path).AndReturn(True) 197 gclient_scm.os.path.isdir(base_path).AndReturn(True)
189 items = [ 198 items = [
190 ('~ ', 'a'), 199 ('~ ', 'a'),
191 ] 200 ]
192 gclient_scm.scm.SVN.CaptureStatus(base_path).AndReturn(items) 201 gclient_scm.scm.SVN.CaptureStatus(base_path).AndReturn(items)
193 file_path = gclient_scm.os.path.join(base_path, 'a') 202 file_path = gclient_scm.os.path.join(base_path, 'a')
194 print(file_path) 203 print(file_path)
195 gclient_scm.os.path.exists(file_path).AndReturn(True) 204 gclient_scm.os.path.exists(file_path).AndReturn(True)
196 gclient_scm.os.path.isfile(file_path).AndReturn(False) 205 gclient_scm.os.path.isfile(file_path).AndReturn(False)
197 gclient_scm.os.path.islink(file_path).AndReturn(False) 206 gclient_scm.os.path.islink(file_path).AndReturn(False)
198 gclient_scm.os.path.isdir(file_path).AndReturn(True) 207 gclient_scm.os.path.isdir(file_path).AndReturn(True)
199 gclient_scm.gclient_utils.RemoveDirectory(file_path) 208 gclient_scm.gclient_utils.RemoveDirectory(file_path)
200 file_list1 = [] 209 file_list1 = []
201 gclient_scm.scm.SVN.RunAndGetFileList(options.verbose, 210 gclient_scm.scm.SVN.RunAndGetFileList(options.verbose,
202 ['update', '--revision', 'BASE'], 211 ['update', '--revision', 'BASE'],
203 base_path, mox.IgnoreArg()) 212 cwd=base_path,
213 file_list=mox.IgnoreArg(),
214 stdout=options.stdout)
204 215
205 self.mox.ReplayAll() 216 self.mox.ReplayAll()
206 scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir, 217 scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir,
207 relpath=self.relpath) 218 relpath=self.relpath)
208 file_list2 = [] 219 file_list2 = []
209 scm.revert(options, self.args, file_list2) 220 scm.revert(options, self.args, file_list2)
210 221
211 def testStatus(self): 222 def testStatus(self):
212 options = self.Options(verbose=True) 223 options = self.Options(verbose=True)
213 base_path = gclient_scm.os.path.join(self.root_dir, self.relpath) 224 base_path = gclient_scm.os.path.join(self.root_dir, self.relpath)
214 gclient_scm.os.path.isdir(base_path).AndReturn(True) 225 gclient_scm.os.path.isdir(base_path).AndReturn(True)
215 gclient_scm.scm.SVN.RunAndGetFileList(options.verbose, 226 gclient_scm.scm.SVN.RunAndGetFileList(options.verbose,
216 ['status'] + self.args, 227 ['status'] + self.args,
217 base_path, []).AndReturn(None) 228 cwd=base_path, file_list=[],
229 stdout=options.stdout).AndReturn(None)
218 230
219 self.mox.ReplayAll() 231 self.mox.ReplayAll()
220 scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir, 232 scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir,
221 relpath=self.relpath) 233 relpath=self.relpath)
222 file_list = [] 234 file_list = []
223 self.assertEqual(scm.status(options, self.args, file_list), None) 235 self.assertEqual(scm.status(options, self.args, file_list), None)
224 236
225 237
226 # TODO(maruel): TEST REVISIONS!!! 238 # TODO(maruel): TEST REVISIONS!!!
227 # TODO(maruel): TEST RELOCATE!!! 239 # TODO(maruel): TEST RELOCATE!!!
228 def testUpdateCheckout(self): 240 def testUpdateCheckout(self):
229 options = self.Options(verbose=True) 241 options = self.Options(verbose=True)
230 base_path = gclient_scm.os.path.join(self.root_dir, self.relpath) 242 base_path = gclient_scm.os.path.join(self.root_dir, self.relpath)
231 file_info = gclient_scm.gclient_utils.PrintableObject() 243 file_info = gclient_scm.gclient_utils.PrintableObject()
232 file_info.root = 'blah' 244 file_info.root = 'blah'
233 file_info.url = self.url 245 file_info.url = self.url
234 file_info.uuid = 'ABC' 246 file_info.uuid = 'ABC'
235 file_info.revision = 42 247 file_info.revision = 42
236 gclient_scm.os.path.exists(gclient_scm.os.path.join(base_path, '.git') 248 gclient_scm.os.path.exists(gclient_scm.os.path.join(base_path, '.git')
237 ).AndReturn(False) 249 ).AndReturn(False)
238 # Checkout. 250 # Checkout.
239 gclient_scm.os.path.exists(base_path).AndReturn(False) 251 gclient_scm.os.path.exists(base_path).AndReturn(False)
240 files_list = self.mox.CreateMockAnything() 252 files_list = self.mox.CreateMockAnything()
253 gclient_scm.scm.SVN.Capture(['--version']
254 ).AndReturn('svn, version 1.5.1 (r32289)')
241 gclient_scm.scm.SVN.RunAndGetFileList(options.verbose, 255 gclient_scm.scm.SVN.RunAndGetFileList(options.verbose,
242 ['checkout', self.url, base_path, 256 ['checkout', self.url, base_path,
243 '--force'], 257 '--force'],
244 self.root_dir, files_list) 258 cwd=self.root_dir,
259 file_list=files_list,
260 stdout=options.stdout)
245 self.mox.ReplayAll() 261 self.mox.ReplayAll()
246 scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir, 262 scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir,
247 relpath=self.relpath) 263 relpath=self.relpath)
248 scm.update(options, (), files_list) 264 scm.update(options, (), files_list)
249 265
250 def testUpdateUpdate(self): 266 def testUpdateUpdate(self):
251 options = self.Options(verbose=True) 267 options = self.Options(verbose=True)
252 base_path = gclient_scm.os.path.join(self.root_dir, self.relpath) 268 base_path = gclient_scm.os.path.join(self.root_dir, self.relpath)
253 options.force = True 269 options.force = True
254 options.nohooks = False 270 options.nohooks = False
(...skipping 13 matching lines...) Expand all
268 # Checkout or update. 284 # Checkout or update.
269 gclient_scm.os.path.exists(base_path).AndReturn(True) 285 gclient_scm.os.path.exists(base_path).AndReturn(True)
270 gclient_scm.scm.SVN.CaptureInfo( 286 gclient_scm.scm.SVN.CaptureInfo(
271 gclient_scm.os.path.join(base_path, "."), '.' 287 gclient_scm.os.path.join(base_path, "."), '.'
272 ).AndReturn(file_info) 288 ).AndReturn(file_info)
273 # Cheat a bit here. 289 # Cheat a bit here.
274 gclient_scm.scm.SVN.CaptureInfo(file_info['URL'], '.').AndReturn(file_info) 290 gclient_scm.scm.SVN.CaptureInfo(file_info['URL'], '.').AndReturn(file_info)
275 additional_args = [] 291 additional_args = []
276 if options.manually_grab_svn_rev: 292 if options.manually_grab_svn_rev:
277 additional_args = ['--revision', str(file_info['Revision'])] 293 additional_args = ['--revision', str(file_info['Revision'])]
278 if options.force and gclient_scm.scm.SVN.AssertVersion("1.5")[0]: 294 gclient_scm.scm.SVN.Capture(['--version']
279 additional_args.append('--force') 295 ).AndReturn('svn, version 1.5.1 (r32289)')
296 additional_args.append('--force')
280 files_list = [] 297 files_list = []
281 gclient_scm.scm.SVN.RunAndGetFileList( 298 gclient_scm.scm.SVN.RunAndGetFileList(
282 options.verbose, 299 options.verbose,
283 ['update', base_path] + additional_args, 300 ['update', base_path] + additional_args,
284 self.root_dir, files_list) 301 cwd=self.root_dir, file_list=files_list, stdout=options.stdout)
285 302
286 self.mox.ReplayAll() 303 self.mox.ReplayAll()
287 scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir, 304 scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir,
288 relpath=self.relpath) 305 relpath=self.relpath)
289 scm.update(options, (), files_list) 306 scm.update(options, (), files_list)
290 307
291 def testUpdateSingleCheckout(self): 308 def testUpdateSingleCheckout(self):
292 options = self.Options(verbose=True) 309 options = self.Options(verbose=True)
293 base_path = gclient_scm.os.path.join(self.root_dir, self.relpath) 310 base_path = gclient_scm.os.path.join(self.root_dir, self.relpath)
294 file_info = { 311 file_info = {
295 'URL': self.url, 312 'URL': self.url,
296 'Revision': 42, 313 'Revision': 42,
297 } 314 }
298 315
299 # Checks to make sure that we support svn co --depth. 316 # Checks to make sure that we support svn co --depth.
300 gclient_scm.scm.SVN.current_version = None 317 gclient_scm.scm.SVN.current_version = None
301 gclient_scm.scm.SVN.Capture(['--version'] 318 gclient_scm.scm.SVN.Capture(['--version']
302 ).AndReturn('svn, version 1.5.1 (r32289)') 319 ).AndReturn('svn, version 1.5.1 (r32289)')
303 gclient_scm.os.path.exists(gclient_scm.os.path.join(base_path, '.svn') 320 gclient_scm.os.path.exists(gclient_scm.os.path.join(base_path, '.svn')
304 ).AndReturn(False) 321 ).AndReturn(False)
305 gclient_scm.os.path.exists(gclient_scm.os.path.join(base_path, 'DEPS') 322 gclient_scm.os.path.exists(gclient_scm.os.path.join(base_path, 'DEPS')
306 ).AndReturn(False) 323 ).AndReturn(False)
307 324
308 # Verify no locked files. 325 # Verify no locked files.
309 gclient_scm.scm.SVN.CaptureStatus(gclient_scm.os.path.join(base_path, '.') 326 gclient_scm.scm.SVN.CaptureStatus(gclient_scm.os.path.join(base_path, '.')
310 ).AndReturn([]) 327 ).AndReturn([])
311 328
312 # When checking out a single file, we issue an svn checkout and svn update. 329 # When checking out a single file, we issue an svn checkout and svn update.
313 files_list = self.mox.CreateMockAnything() 330 files_list = self.mox.CreateMockAnything()
314 gclient_scm.scm.SVN.Run( 331 gclient_scm.gclient_utils.CheckCallAndFilterAndHeader(
315 ['checkout', '--depth', 'empty', self.url, base_path], 332 ['svn', 'checkout', '--depth', 'empty', self.url, base_path],
316 cwd=self.root_dir) 333 always=True, cwd=self.root_dir, stdout=options.stdout)
317 gclient_scm.scm.SVN.RunAndGetFileList(options.verbose, ['update', 'DEPS'], 334 gclient_scm.scm.SVN.RunAndGetFileList(options.verbose, ['update', 'DEPS'],
318 gclient_scm.os.path.join(self.root_dir, self.relpath), files_list) 335 cwd=base_path, file_list=files_list, stdout=options.stdout)
319 336
320 # Now we fall back on scm.update(). 337 # Now we fall back on scm.update().
321 gclient_scm.os.path.exists(gclient_scm.os.path.join(base_path, '.git') 338 gclient_scm.os.path.exists(gclient_scm.os.path.join(base_path, '.git')
322 ).AndReturn(False) 339 ).AndReturn(False)
323 gclient_scm.os.path.exists(base_path).AndReturn(True) 340 gclient_scm.os.path.exists(base_path).AndReturn(True)
324 gclient_scm.scm.SVN.CaptureInfo( 341 gclient_scm.scm.SVN.CaptureInfo(
325 gclient_scm.os.path.join(base_path, "."), '.' 342 gclient_scm.os.path.join(base_path, "."), '.'
326 ).AndReturn(file_info) 343 ).AndReturn(file_info)
327 gclient_scm.scm.SVN.CaptureInfo(file_info['URL'], '.').AndReturn(file_info) 344 gclient_scm.scm.SVN.CaptureInfo(file_info['URL'], '.').AndReturn(file_info)
328 print("\n_____ %s at 42" % self.relpath) 345 options.stdout.write("\n_____ %s at 42" % self.relpath)
346 options.stdout.write('\n')
329 347
330 self.mox.ReplayAll() 348 self.mox.ReplayAll()
331 scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir, 349 scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir,
332 relpath=self.relpath) 350 relpath=self.relpath)
333 scm.updatesingle(options, ['DEPS'], files_list) 351 scm.updatesingle(options, ['DEPS'], files_list)
334 352
335 def testUpdateSingleCheckoutSVN14(self): 353 def testUpdateSingleCheckoutSVN14(self):
336 options = self.Options(verbose=True) 354 options = self.Options(verbose=True)
337 base_path = gclient_scm.os.path.join(self.root_dir, self.relpath) 355 base_path = gclient_scm.os.path.join(self.root_dir, self.relpath)
338 file_info = { 356 file_info = {
339 'URL': self.url, 357 'URL': self.url,
340 'Revision': 42, 358 'Revision': 42,
341 } 359 }
342 360
343 # Checks to make sure that we support svn co --depth. 361 # Checks to make sure that we support svn co --depth.
344 gclient_scm.scm.SVN.current_version = None 362 gclient_scm.scm.SVN.current_version = None
345 gclient_scm.scm.SVN.Capture(['--version'] 363 gclient_scm.scm.SVN.Capture(['--version']
346 ).AndReturn('svn, version 1.4.4 (r25188)') 364 ).AndReturn('svn, version 1.4.4 (r25188)')
347 gclient_scm.os.path.exists(gclient_scm.os.path.join(base_path) 365 gclient_scm.os.path.exists(gclient_scm.os.path.join(base_path)
348 ).AndReturn(True) 366 ).AndReturn(True)
349 367
350 # When checking out a single file with svn 1.4, we use svn export 368 # When checking out a single file with svn 1.4, we use svn export
351 files_list = self.mox.CreateMockAnything() 369 files_list = self.mox.CreateMockAnything()
352 gclient_scm.scm.SVN.Run( 370 gclient_scm.gclient_utils.CheckCallAndFilterAndHeader(
353 ['export', gclient_scm.os.path.join(self.url, 'DEPS'), 371 ['svn', 'export', gclient_scm.os.path.join(self.url, 'DEPS'),
354 gclient_scm.os.path.join(base_path, 'DEPS')], 372 gclient_scm.os.path.join(base_path, 'DEPS')],
355 cwd=self.root_dir) 373 always=True, cwd=self.root_dir, stdout=options.stdout)
356 374
357 self.mox.ReplayAll() 375 self.mox.ReplayAll()
358 scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir, 376 scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir,
359 relpath=self.relpath) 377 relpath=self.relpath)
360 scm.updatesingle(options, ['DEPS'], files_list) 378 scm.updatesingle(options, ['DEPS'], files_list)
361 379
362 def testUpdateSingleCheckoutSVNUpgrade(self): 380 def testUpdateSingleCheckoutSVNUpgrade(self):
363 options = self.Options(verbose=True) 381 options = self.Options(verbose=True)
364 base_path = gclient_scm.os.path.join(self.root_dir, self.relpath) 382 base_path = gclient_scm.os.path.join(self.root_dir, self.relpath)
365 file_info = { 383 file_info = {
(...skipping 12 matching lines...) Expand all
378 gclient_scm.os.path.exists(gclient_scm.os.path.join(base_path, 'DEPS') 396 gclient_scm.os.path.exists(gclient_scm.os.path.join(base_path, 'DEPS')
379 ).AndReturn(True) 397 ).AndReturn(True)
380 gclient_scm.os.remove(gclient_scm.os.path.join(base_path, 'DEPS')) 398 gclient_scm.os.remove(gclient_scm.os.path.join(base_path, 'DEPS'))
381 399
382 # Verify no locked files. 400 # Verify no locked files.
383 gclient_scm.scm.SVN.CaptureStatus(gclient_scm.os.path.join(base_path, '.') 401 gclient_scm.scm.SVN.CaptureStatus(gclient_scm.os.path.join(base_path, '.')
384 ).AndReturn([]) 402 ).AndReturn([])
385 403
386 # When checking out a single file, we issue an svn checkout and svn update. 404 # When checking out a single file, we issue an svn checkout and svn update.
387 files_list = self.mox.CreateMockAnything() 405 files_list = self.mox.CreateMockAnything()
388 gclient_scm.scm.SVN.Run( 406 gclient_scm.gclient_utils.CheckCallAndFilterAndHeader(
389 ['checkout', '--depth', 'empty', self.url, base_path], 407 ['svn', 'checkout', '--depth', 'empty', self.url, base_path],
390 cwd=self.root_dir) 408 always=True, cwd=self.root_dir, stdout=options.stdout)
391 gclient_scm.scm.SVN.RunAndGetFileList(options.verbose, ['update', 'DEPS'], 409 gclient_scm.scm.SVN.RunAndGetFileList(options.verbose, ['update', 'DEPS'],
392 gclient_scm.os.path.join(self.root_dir, self.relpath), files_list) 410 cwd=base_path, file_list=files_list, stdout=options.stdout)
393 411
394 # Now we fall back on scm.update(). 412 # Now we fall back on scm.update().
395 gclient_scm.os.path.exists(gclient_scm.os.path.join(base_path, '.git') 413 gclient_scm.os.path.exists(gclient_scm.os.path.join(base_path, '.git')
396 ).AndReturn(False) 414 ).AndReturn(False)
397 gclient_scm.os.path.exists(base_path).AndReturn(True) 415 gclient_scm.os.path.exists(base_path).AndReturn(True)
398 gclient_scm.scm.SVN.CaptureInfo( 416 gclient_scm.scm.SVN.CaptureInfo(
399 gclient_scm.os.path.join(base_path, "."), '.' 417 gclient_scm.os.path.join(base_path, "."), '.'
400 ).AndReturn(file_info) 418 ).AndReturn(file_info)
401 gclient_scm.scm.SVN.CaptureInfo(file_info['URL'], '.').AndReturn(file_info) 419 gclient_scm.scm.SVN.CaptureInfo(file_info['URL'], '.').AndReturn(file_info)
402 print("\n_____ %s at 42" % self.relpath) 420 print("\n_____ %s at 42" % self.relpath)
(...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after
760 relpath=self.relpath) 778 relpath=self.relpath)
761 rev_info = scm.revinfo(options, (), None) 779 rev_info = scm.revinfo(options, (), None)
762 self.assertEquals(rev_info, '069c602044c5388d2d15c3f875b057c852003458') 780 self.assertEquals(rev_info, '069c602044c5388d2d15c3f875b057c852003458')
763 781
764 782
765 if __name__ == '__main__': 783 if __name__ == '__main__':
766 import unittest 784 import unittest
767 unittest.main() 785 unittest.main()
768 786
769 # vim: ts=2:sw=2:tw=80:et: 787 # vim: ts=2:sw=2:tw=80:et:
OLDNEW
« no previous file with comments | « scm.py ('k') | tests/gclient_smoketest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698