OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright (c) 2011 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2011 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 checkout.py.""" | 6 """Unit tests for checkout.py.""" |
7 | 7 |
8 from __future__ import with_statement | 8 from __future__ import with_statement |
9 import logging | 9 import logging |
10 import os | 10 import os |
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
174 tree['new_dir/subdir/new_file'] = 'A new file\nshould exist.\n' | 174 tree['new_dir/subdir/new_file'] = 'A new file\nshould exist.\n' |
175 return tree | 175 return tree |
176 | 176 |
177 def _check_base(self, co, root, git, expected): | 177 def _check_base(self, co, root, git, expected): |
178 read_only = isinstance(co, checkout.ReadOnlyCheckout) | 178 read_only = isinstance(co, checkout.ReadOnlyCheckout) |
179 assert not read_only == bool(expected) | 179 assert not read_only == bool(expected) |
180 if not read_only: | 180 if not read_only: |
181 self.FAKE_REPOS.svn_dirty = True | 181 self.FAKE_REPOS.svn_dirty = True |
182 | 182 |
183 self.assertEquals(root, co.project_path) | 183 self.assertEquals(root, co.project_path) |
184 self.assertEquals(self.previous_log['revision'], co.prepare()) | 184 self.assertEquals(self.previous_log['revision'], co.prepare(None)) |
185 self.assertEquals('pouet', co.get_settings('bar')) | 185 self.assertEquals('pouet', co.get_settings('bar')) |
186 self.assertTree(self.get_trunk(False), root) | 186 self.assertTree(self.get_trunk(False), root) |
187 patches = self.get_patches() | 187 patches = self.get_patches() |
188 co.apply_patch(patches) | 188 co.apply_patch(patches) |
189 self.assertEquals( | 189 self.assertEquals( |
190 ['bin_file', 'extra', 'new_dir/subdir/new_file', 'svn_utils_test.txt'], | 190 ['bin_file', 'extra', 'new_dir/subdir/new_file', 'svn_utils_test.txt'], |
191 sorted(patches.filenames)) | 191 sorted(patches.filenames)) |
192 | 192 |
193 if git: | 193 if git: |
194 # Hackish to verify _branches() internal function. | 194 # Hackish to verify _branches() internal function. |
195 # pylint: disable=W0212 | 195 # pylint: disable=W0212 |
196 self.assertEquals( | 196 self.assertEquals( |
197 (['master', 'working_branch'], 'working_branch'), | 197 (['master', 'working_branch'], 'working_branch'), |
198 co.checkout._branches()) | 198 co.checkout._branches()) |
199 | 199 |
200 # Verify that the patch is applied even for read only checkout. | 200 # Verify that the patch is applied even for read only checkout. |
201 self.assertTree(self.get_trunk(True), root) | 201 self.assertTree(self.get_trunk(True), root) |
202 fake_author = self.FAKE_REPOS.USERS[1][0] | 202 fake_author = self.FAKE_REPOS.USERS[1][0] |
203 revision = co.commit(u'msg', fake_author) | 203 revision = co.commit(u'msg', fake_author) |
204 # Nothing changed. | 204 # Nothing changed. |
205 self.assertTree(self.get_trunk(True), root) | 205 self.assertTree(self.get_trunk(True), root) |
206 | 206 |
207 if read_only: | 207 if read_only: |
208 self.assertEquals('FAKE', revision) | 208 self.assertEquals('FAKE', revision) |
209 self.assertEquals(self.previous_log['revision'], co.prepare()) | 209 self.assertEquals(self.previous_log['revision'], co.prepare(None)) |
210 # Changes should be reverted now. | 210 # Changes should be reverted now. |
211 self.assertTree(self.get_trunk(False), root) | 211 self.assertTree(self.get_trunk(False), root) |
212 expected = self.previous_log | 212 expected = self.previous_log |
213 else: | 213 else: |
214 self.assertEquals(self.previous_log['revision'] + 1, revision) | 214 self.assertEquals(self.previous_log['revision'] + 1, revision) |
215 self.assertEquals(self.previous_log['revision'] + 1, co.prepare()) | 215 self.assertEquals(self.previous_log['revision'] + 1, co.prepare(None)) |
216 self.assertTree(self.get_trunk(True), root) | 216 self.assertTree(self.get_trunk(True), root) |
217 expected = expected.copy() | 217 expected = expected.copy() |
218 expected['msg'] = 'msg' | 218 expected['msg'] = 'msg' |
219 expected['revision'] = self.previous_log['revision'] + 1 | 219 expected['revision'] = self.previous_log['revision'] + 1 |
220 expected.setdefault('author', fake_author) | 220 expected.setdefault('author', fake_author) |
221 | 221 |
222 actual = self._log() | 222 actual = self._log() |
223 self.assertEquals(expected, actual) | 223 self.assertEquals(expected, actual) |
224 | 224 |
225 def _check_exception(self, co, err_msg): | 225 def _check_exception(self, co, err_msg): |
226 co.prepare() | 226 co.prepare(None) |
227 try: | 227 try: |
228 co.apply_patch([patch.FilePatchDiff('svn_utils_test.txt', BAD_PATCH, [])]) | 228 co.apply_patch([patch.FilePatchDiff('svn_utils_test.txt', BAD_PATCH, [])]) |
229 self.fail() | 229 self.fail() |
230 except checkout.PatchApplicationFailed, e: | 230 except checkout.PatchApplicationFailed, e: |
231 self.assertEquals(e.filename, 'svn_utils_test.txt') | 231 self.assertEquals(e.filename, 'svn_utils_test.txt') |
232 self.assertEquals(e.status, err_msg) | 232 self.assertEquals(e.status, err_msg) |
233 | 233 |
234 def _log(self): | 234 def _log(self): |
235 raise NotImplementedError() | 235 raise NotImplementedError() |
236 | 236 |
237 def _test_process(self, co): | 237 def _test_process(self, co): |
238 """Makes sure the process lambda is called correctly.""" | 238 """Makes sure the process lambda is called correctly.""" |
239 co.post_processors = [lambda *args: results.append(args)] | 239 co.post_processors = [lambda *args: results.append(args)] |
240 co.prepare() | 240 co.prepare(None) |
241 ps = self.get_patches() | 241 ps = self.get_patches() |
242 results = [] | 242 results = [] |
243 co.apply_patch(ps) | 243 co.apply_patch(ps) |
244 expected = [(co, p) for p in ps.patches] | 244 expected = [(co, p) for p in ps.patches] |
245 self.assertEquals(expected, results) | 245 self.assertEquals(expected, results) |
246 | 246 |
247 | 247 |
248 class SvnBaseTest(BaseTest): | 248 class SvnBaseTest(BaseTest): |
249 def setUp(self): | 249 def setUp(self): |
250 super(SvnBaseTest, self).setUp() | 250 super(SvnBaseTest, self).setUp() |
(...skipping 23 matching lines...) Expand all Loading... |
274 data[name] = item.text | 274 data[name] = item.text |
275 set_item('author') | 275 set_item('author') |
276 set_item('msg') | 276 set_item('msg') |
277 revprops = logentry.find('revprops') | 277 revprops = logentry.find('revprops') |
278 if revprops != None: | 278 if revprops != None: |
279 data['revprops'] = [] | 279 data['revprops'] = [] |
280 for prop in revprops.getiterator('property'): | 280 for prop in revprops.getiterator('property'): |
281 data['revprops'].append((prop.attrib['name'], prop.text)) | 281 data['revprops'].append((prop.attrib['name'], prop.text)) |
282 return data | 282 return data |
283 | 283 |
| 284 def _test_prepare(self, co): |
| 285 self.assertEquals(1, co.prepare(1)) |
| 286 |
284 | 287 |
285 class SvnCheckout(SvnBaseTest): | 288 class SvnCheckout(SvnBaseTest): |
286 def _get_co(self, read_only): | 289 def _get_co(self, read_only): |
287 if read_only: | 290 if read_only: |
288 return checkout.ReadOnlyCheckout( | 291 return checkout.ReadOnlyCheckout( |
289 checkout.SvnCheckout( | 292 checkout.SvnCheckout( |
290 self.root_dir, self.name, None, None, self.svn_url)) | 293 self.root_dir, self.name, None, None, self.svn_url)) |
291 else: | 294 else: |
292 return checkout.SvnCheckout( | 295 return checkout.SvnCheckout( |
293 self.root_dir, self.name, self.usr, self.pwd, self.svn_url) | 296 self.root_dir, self.name, self.usr, self.pwd, self.svn_url) |
(...skipping 16 matching lines...) Expand all Loading... |
310 self._check_exception( | 313 self._check_exception( |
311 self._get_co(True), | 314 self._get_co(True), |
312 'While running patch -p1 --forward --force;\n' | 315 'While running patch -p1 --forward --force;\n' |
313 'patching file svn_utils_test.txt\n' | 316 'patching file svn_utils_test.txt\n' |
314 'Hunk #1 FAILED at 3.\n' | 317 'Hunk #1 FAILED at 3.\n' |
315 '1 out of 1 hunk FAILED -- saving rejects to file ' | 318 '1 out of 1 hunk FAILED -- saving rejects to file ' |
316 'svn_utils_test.txt.rej\n') | 319 'svn_utils_test.txt.rej\n') |
317 | 320 |
318 def testSvnProps(self): | 321 def testSvnProps(self): |
319 co = self._get_co(False) | 322 co = self._get_co(False) |
320 co.prepare() | 323 co.prepare(None) |
321 try: | 324 try: |
322 # svn:ignore can only be applied to directories. | 325 # svn:ignore can only be applied to directories. |
323 svn_props = [('svn:ignore', 'foo')] | 326 svn_props = [('svn:ignore', 'foo')] |
324 co.apply_patch( | 327 co.apply_patch( |
325 [patch.FilePatchDiff('svn_utils_test.txt', NAKED_PATCH, svn_props)]) | 328 [patch.FilePatchDiff('svn_utils_test.txt', NAKED_PATCH, svn_props)]) |
326 self.fail() | 329 self.fail() |
327 except checkout.PatchApplicationFailed, e: | 330 except checkout.PatchApplicationFailed, e: |
328 self.assertEquals(e.filename, 'svn_utils_test.txt') | 331 self.assertEquals(e.filename, 'svn_utils_test.txt') |
329 self.assertEquals( | 332 self.assertEquals( |
330 e.status, | 333 e.status, |
331 'While running svn propset svn:ignore foo svn_utils_test.txt ' | 334 'While running svn propset svn:ignore foo svn_utils_test.txt ' |
332 '--non-interactive;\n' | 335 '--non-interactive;\n' |
333 'patching file svn_utils_test.txt\n' | 336 'patching file svn_utils_test.txt\n' |
334 'svn: Cannot set \'svn:ignore\' on a file (\'svn_utils_test.txt\')\n') | 337 'svn: Cannot set \'svn:ignore\' on a file (\'svn_utils_test.txt\')\n') |
335 co.prepare() | 338 co.prepare(None) |
336 svn_props = [('svn:eol-style', 'LF'), ('foo', 'bar')] | 339 svn_props = [('svn:eol-style', 'LF'), ('foo', 'bar')] |
337 co.apply_patch( | 340 co.apply_patch( |
338 [patch.FilePatchDiff('svn_utils_test.txt', NAKED_PATCH, svn_props)]) | 341 [patch.FilePatchDiff('svn_utils_test.txt', NAKED_PATCH, svn_props)]) |
339 filepath = os.path.join(self.root_dir, self.name, 'svn_utils_test.txt') | 342 filepath = os.path.join(self.root_dir, self.name, 'svn_utils_test.txt') |
340 # Manually verify the properties. | 343 # Manually verify the properties. |
341 props = subprocess2.check_output( | 344 props = subprocess2.check_output( |
342 ['svn', 'proplist', filepath], | 345 ['svn', 'proplist', filepath], |
343 cwd=self.root_dir).splitlines()[1:] | 346 cwd=self.root_dir).splitlines()[1:] |
344 props = sorted(p.strip() for p in props) | 347 props = sorted(p.strip() for p in props) |
345 expected_props = dict(svn_props) | 348 expected_props = dict(svn_props) |
(...skipping 26 matching lines...) Expand all Loading... |
372 root = os.path.join(self.root_dir, self.name) | 375 root = os.path.join(self.root_dir, self.name) |
373 expected = { | 376 expected = { |
374 'author': self.FAKE_REPOS.USERS[1][0], | 377 'author': self.FAKE_REPOS.USERS[1][0], |
375 } | 378 } |
376 self._check_base(co, root, False, expected) | 379 self._check_base(co, root, False, expected) |
377 | 380 |
378 def testAutoProps(self): | 381 def testAutoProps(self): |
379 co = self._get_co(False) | 382 co = self._get_co(False) |
380 co.svn_config = checkout.SvnConfig( | 383 co.svn_config = checkout.SvnConfig( |
381 os.path.join(ROOT_DIR, 'subversion_config')) | 384 os.path.join(ROOT_DIR, 'subversion_config')) |
382 co.prepare() | 385 co.prepare(None) |
383 patches = self.get_patches() | 386 patches = self.get_patches() |
384 co.apply_patch(patches) | 387 co.apply_patch(patches) |
385 self.assertEquals( | 388 self.assertEquals( |
386 ['bin_file', 'extra', 'new_dir/subdir/new_file', 'svn_utils_test.txt'], | 389 ['bin_file', 'extra', 'new_dir/subdir/new_file', 'svn_utils_test.txt'], |
387 sorted(patches.filenames)) | 390 sorted(patches.filenames)) |
388 # *.txt = svn:eol-style=LF in subversion_config/config. | 391 # *.txt = svn:eol-style=LF in subversion_config/config. |
389 out = subprocess2.check_output( | 392 out = subprocess2.check_output( |
390 ['svn', 'pget', 'svn:eol-style', 'svn_utils_test.txt'], | 393 ['svn', 'pget', 'svn:eol-style', 'svn_utils_test.txt'], |
391 cwd=co.project_path) | 394 cwd=co.project_path) |
392 self.assertEquals('LF\n', out) | 395 self.assertEquals('LF\n', out) |
393 | 396 |
394 def testProcess(self): | 397 def testProcess(self): |
395 co = checkout.SvnCheckout( | 398 co = checkout.SvnCheckout( |
396 self.root_dir, self.name, | 399 self.root_dir, self.name, |
397 None, None, | 400 None, None, |
398 self.svn_url) | 401 self.svn_url) |
399 self._test_process(co) | 402 self._test_process(co) |
400 | 403 |
| 404 def testPrepare(self): |
| 405 co = checkout.SvnCheckout( |
| 406 self.root_dir, self.name, |
| 407 None, None, |
| 408 self.svn_url) |
| 409 self._test_prepare(co) |
| 410 |
401 | 411 |
402 class GitSvnCheckout(SvnBaseTest): | 412 class GitSvnCheckout(SvnBaseTest): |
403 name = 'foo.git' | 413 name = 'foo.git' |
404 | 414 |
405 def _get_co(self, read_only): | 415 def _get_co(self, read_only): |
406 co = checkout.GitSvnCheckout( | 416 co = checkout.GitSvnCheckout( |
407 self.root_dir, self.name[:-4], | 417 self.root_dir, self.name[:-4], |
408 self.usr, self.pwd, | 418 self.usr, self.pwd, |
409 self.svn_base, self.svn_trunk) | 419 self.svn_base, self.svn_trunk) |
410 if read_only: | 420 if read_only: |
(...skipping 12 matching lines...) Expand all Loading... |
423 | 433 |
424 def testAllRW(self): | 434 def testAllRW(self): |
425 expected = { | 435 expected = { |
426 'author': self.FAKE_REPOS.USERS[0][0], | 436 'author': self.FAKE_REPOS.USERS[0][0], |
427 } | 437 } |
428 self._check(False, expected) | 438 self._check(False, expected) |
429 | 439 |
430 def testGitSvnPremade(self): | 440 def testGitSvnPremade(self): |
431 # Test premade git-svn clone. First make a git-svn clone. | 441 # Test premade git-svn clone. First make a git-svn clone. |
432 git_svn_co = self._get_co(True) | 442 git_svn_co = self._get_co(True) |
433 revision = git_svn_co.prepare() | 443 revision = git_svn_co.prepare(None) |
434 self.assertEquals(self.previous_log['revision'], revision) | 444 self.assertEquals(self.previous_log['revision'], revision) |
435 # Then use GitSvnClone to clone it to lose the git-svn connection and verify | 445 # Then use GitSvnClone to clone it to lose the git-svn connection and verify |
436 # git svn init / git svn fetch works. | 446 # git svn init / git svn fetch works. |
437 git_svn_clone = checkout.GitSvnPremadeCheckout( | 447 git_svn_clone = checkout.GitSvnPremadeCheckout( |
438 self.root_dir, self.name[:-4] + '2', 'trunk', | 448 self.root_dir, self.name[:-4] + '2', 'trunk', |
439 self.usr, self.pwd, | 449 self.usr, self.pwd, |
440 self.svn_base, self.svn_trunk, git_svn_co.project_path) | 450 self.svn_base, self.svn_trunk, git_svn_co.project_path) |
441 self.assertEquals(self.previous_log['revision'], git_svn_clone.prepare()) | 451 self.assertEquals( |
| 452 self.previous_log['revision'], git_svn_clone.prepare(None)) |
442 | 453 |
443 def testException(self): | 454 def testException(self): |
444 self._check_exception( | 455 self._check_exception( |
445 self._get_co(True), 'fatal: corrupt patch at line 12\n') | 456 self._get_co(True), 'fatal: corrupt patch at line 12\n') |
446 | 457 |
447 def testSvnProps(self): | 458 def testSvnProps(self): |
448 co = self._get_co(False) | 459 co = self._get_co(False) |
449 co.prepare() | 460 co.prepare(None) |
450 try: | 461 try: |
451 svn_props = [('foo', 'bar')] | 462 svn_props = [('foo', 'bar')] |
452 co.apply_patch( | 463 co.apply_patch( |
453 [patch.FilePatchDiff('svn_utils_test.txt', NAKED_PATCH, svn_props)]) | 464 [patch.FilePatchDiff('svn_utils_test.txt', NAKED_PATCH, svn_props)]) |
454 self.fail() | 465 self.fail() |
455 except patch.UnsupportedPatchFormat, e: | 466 except patch.UnsupportedPatchFormat, e: |
456 self.assertEquals(e.filename, 'svn_utils_test.txt') | 467 self.assertEquals(e.filename, 'svn_utils_test.txt') |
457 self.assertEquals( | 468 self.assertEquals( |
458 e.status, | 469 e.status, |
459 'Cannot apply svn property foo to file svn_utils_test.txt.') | 470 'Cannot apply svn property foo to file svn_utils_test.txt.') |
460 co.prepare() | 471 co.prepare(None) |
461 # svn:eol-style is ignored. | 472 # svn:eol-style is ignored. |
462 svn_props = [('svn:eol-style', 'LF')] | 473 svn_props = [('svn:eol-style', 'LF')] |
463 co.apply_patch( | 474 co.apply_patch( |
464 [patch.FilePatchDiff('svn_utils_test.txt', NAKED_PATCH, svn_props)]) | 475 [patch.FilePatchDiff('svn_utils_test.txt', NAKED_PATCH, svn_props)]) |
465 | 476 |
466 def testProcess(self): | 477 def testProcess(self): |
467 co = checkout.SvnCheckout( | 478 co = checkout.SvnCheckout( |
468 self.root_dir, self.name, | 479 self.root_dir, self.name, |
469 None, None, | 480 None, None, |
470 self.svn_url) | 481 self.svn_url) |
471 self._test_process(co) | 482 self._test_process(co) |
472 | 483 |
| 484 def testPrepare(self): |
| 485 co = checkout.SvnCheckout( |
| 486 self.root_dir, self.name, |
| 487 None, None, |
| 488 self.svn_url) |
| 489 self._test_prepare(co) |
| 490 |
473 | 491 |
474 class RawCheckout(SvnBaseTest): | 492 class RawCheckout(SvnBaseTest): |
475 def setUp(self): | 493 def setUp(self): |
476 super(RawCheckout, self).setUp() | 494 super(RawCheckout, self).setUp() |
477 # Use a svn checkout as the base. | 495 # Use a svn checkout as the base. |
478 self.base_co = checkout.SvnCheckout( | 496 self.base_co = checkout.SvnCheckout( |
479 self.root_dir, self.name, None, None, self.svn_url) | 497 self.root_dir, self.name, None, None, self.svn_url) |
480 self.base_co.prepare() | 498 self.base_co.prepare(None) |
481 | 499 |
482 def _get_co(self, read_only): | 500 def _get_co(self, read_only): |
483 co = checkout.RawCheckout(self.root_dir, self.name, None) | 501 co = checkout.RawCheckout(self.root_dir, self.name, None) |
484 if read_only: | 502 if read_only: |
485 return checkout.ReadOnlyCheckout(co) | 503 return checkout.ReadOnlyCheckout(co) |
486 return co | 504 return co |
487 | 505 |
488 def _check(self, read_only): | 506 def _check(self, read_only): |
489 root = os.path.join(self.root_dir, self.name) | 507 root = os.path.join(self.root_dir, self.name) |
490 co = self._get_co(read_only) | 508 co = self._get_co(read_only) |
491 | 509 |
492 # A copy of BaseTest._check_base() | 510 # A copy of BaseTest._check_base() |
493 self.assertEquals(root, co.project_path) | 511 self.assertEquals(root, co.project_path) |
494 self.assertEquals(None, co.prepare()) | 512 self.assertEquals(None, co.prepare(None)) |
495 self.assertEquals('pouet', co.get_settings('bar')) | 513 self.assertEquals('pouet', co.get_settings('bar')) |
496 self.assertTree(self.get_trunk(False), root) | 514 self.assertTree(self.get_trunk(False), root) |
497 patches = self.get_patches() | 515 patches = self.get_patches() |
498 co.apply_patch(patches) | 516 co.apply_patch(patches) |
499 self.assertEquals( | 517 self.assertEquals( |
500 ['bin_file', 'extra', 'new_dir/subdir/new_file', 'svn_utils_test.txt'], | 518 ['bin_file', 'extra', 'new_dir/subdir/new_file', 'svn_utils_test.txt'], |
501 sorted(patches.filenames)) | 519 sorted(patches.filenames)) |
502 | 520 |
503 # Verify that the patch is applied even for read only checkout. | 521 # Verify that the patch is applied even for read only checkout. |
504 self.assertTree(self.get_trunk(True), root) | 522 self.assertTree(self.get_trunk(True), root) |
505 if read_only: | 523 if read_only: |
506 revision = co.commit(u'msg', self.FAKE_REPOS.USERS[1][0]) | 524 revision = co.commit(u'msg', self.FAKE_REPOS.USERS[1][0]) |
507 self.assertEquals('FAKE', revision) | 525 self.assertEquals('FAKE', revision) |
508 else: | 526 else: |
509 try: | 527 try: |
510 co.commit(u'msg', self.FAKE_REPOS.USERS[1][0]) | 528 co.commit(u'msg', self.FAKE_REPOS.USERS[1][0]) |
511 self.fail() | 529 self.fail() |
512 except NotImplementedError: | 530 except NotImplementedError: |
513 pass | 531 pass |
514 self.assertTree(self.get_trunk(True), root) | 532 self.assertTree(self.get_trunk(True), root) |
515 # Verify that prepare() is a no-op. | 533 # Verify that prepare() is a no-op. |
516 self.assertEquals(None, co.prepare()) | 534 self.assertEquals(None, co.prepare(None)) |
517 self.assertTree(self.get_trunk(True), root) | 535 self.assertTree(self.get_trunk(True), root) |
518 | 536 |
519 def testAllRW(self): | 537 def testAllRW(self): |
520 self._check(False) | 538 self._check(False) |
521 | 539 |
522 def testAllRO(self): | 540 def testAllRO(self): |
523 self._check(True) | 541 self._check(True) |
524 | 542 |
525 def testException(self): | 543 def testException(self): |
526 self._check_exception( | 544 self._check_exception( |
527 self._get_co(True), | 545 self._get_co(True), |
528 'patching file svn_utils_test.txt\n' | 546 'patching file svn_utils_test.txt\n' |
529 'Hunk #1 FAILED at 3.\n' | 547 'Hunk #1 FAILED at 3.\n' |
530 '1 out of 1 hunk FAILED -- saving rejects to file ' | 548 '1 out of 1 hunk FAILED -- saving rejects to file ' |
531 'svn_utils_test.txt.rej\n') | 549 'svn_utils_test.txt.rej\n') |
532 | 550 |
533 def testProcess(self): | 551 def testProcess(self): |
534 co = checkout.SvnCheckout( | 552 co = checkout.SvnCheckout( |
535 self.root_dir, self.name, | 553 self.root_dir, self.name, |
536 None, None, | 554 None, None, |
537 self.svn_url) | 555 self.svn_url) |
538 self._test_process(co) | 556 self._test_process(co) |
539 | 557 |
| 558 def testPrepare(self): |
| 559 co = checkout.SvnCheckout( |
| 560 self.root_dir, self.name, |
| 561 None, None, |
| 562 self.svn_url) |
| 563 self._test_prepare(co) |
| 564 |
540 | 565 |
541 if __name__ == '__main__': | 566 if __name__ == '__main__': |
542 if '-v' in sys.argv: | 567 if '-v' in sys.argv: |
543 DEBUGGING = True | 568 DEBUGGING = True |
544 logging.basicConfig( | 569 logging.basicConfig( |
545 level=logging.DEBUG, | 570 level=logging.DEBUG, |
546 format='%(levelname)5s %(filename)15s(%(lineno)3d): %(message)s') | 571 format='%(levelname)5s %(filename)15s(%(lineno)3d): %(message)s') |
547 else: | 572 else: |
548 logging.basicConfig( | 573 logging.basicConfig( |
549 level=logging.ERROR, | 574 level=logging.ERROR, |
550 format='%(levelname)5s %(filename)15s(%(lineno)3d): %(message)s') | 575 format='%(levelname)5s %(filename)15s(%(lineno)3d): %(message)s') |
551 unittest.main() | 576 unittest.main() |
OLD | NEW |