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

Side by Side Diff: tests/checkout_test.py

Issue 6891003: Add post_process argument to Checkout.apply_patch(). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: post_processor Created 9 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « patch.py ('k') | no next file » | 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/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 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 try: 226 try:
227 co.apply_patch([patch.FilePatchDiff('svn_utils_test.txt', BAD_PATCH, [])]) 227 co.apply_patch([patch.FilePatchDiff('svn_utils_test.txt', BAD_PATCH, [])])
228 self.fail() 228 self.fail()
229 except checkout.PatchApplicationFailed, e: 229 except checkout.PatchApplicationFailed, e:
230 self.assertEquals(e.filename, 'svn_utils_test.txt') 230 self.assertEquals(e.filename, 'svn_utils_test.txt')
231 self.assertEquals(e.status, err_msg) 231 self.assertEquals(e.status, err_msg)
232 232
233 def _log(self): 233 def _log(self):
234 raise NotImplementedError() 234 raise NotImplementedError()
235 235
236 def _test_process(self, co):
237 """Makes sure the process lambda is called correctly."""
238 co.prepare()
239 ps = self.get_patches()
240 results = []
241 co.apply_patch(ps, [lambda *args: results.append(args)])
242 expected = [(co, p) for p in ps.patches]
243 self.assertEquals(expected, results)
244
236 245
237 class SvnBaseTest(BaseTest): 246 class SvnBaseTest(BaseTest):
238 def setUp(self): 247 def setUp(self):
239 super(SvnBaseTest, self).setUp() 248 super(SvnBaseTest, self).setUp()
240 self.enabled = self.FAKE_REPOS.set_up_svn() 249 self.enabled = self.FAKE_REPOS.set_up_svn()
241 self.assertTrue(self.enabled) 250 self.assertTrue(self.enabled)
242 self.svn_trunk = 'trunk' 251 self.svn_trunk = 'trunk'
243 self.svn_url = self.svn_base + self.svn_trunk 252 self.svn_url = self.svn_base + self.svn_trunk
244 self.previous_log = self._log() 253 self.previous_log = self._log()
245 254
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
370 co.apply_patch(patches) 379 co.apply_patch(patches)
371 self.assertEquals( 380 self.assertEquals(
372 ['bin_file', 'extra', 'new_dir/subdir/new_file', 'svn_utils_test.txt'], 381 ['bin_file', 'extra', 'new_dir/subdir/new_file', 'svn_utils_test.txt'],
373 sorted(patches.filenames)) 382 sorted(patches.filenames))
374 # *.txt = svn:eol-style=LF in subversion_config/config. 383 # *.txt = svn:eol-style=LF in subversion_config/config.
375 out = subprocess2.check_output( 384 out = subprocess2.check_output(
376 ['svn', 'pget', 'svn:eol-style', 'svn_utils_test.txt'], 385 ['svn', 'pget', 'svn:eol-style', 'svn_utils_test.txt'],
377 cwd=co.project_path) 386 cwd=co.project_path)
378 self.assertEquals('LF\n', out) 387 self.assertEquals('LF\n', out)
379 388
389 def testProcess(self):
390 co = checkout.SvnCheckout(
391 self.root_dir, self.name,
392 None, None,
393 self.svn_url)
394 self._test_process(co)
395
380 396
381 class GitSvnCheckout(SvnBaseTest): 397 class GitSvnCheckout(SvnBaseTest):
382 name = 'foo.git' 398 name = 'foo.git'
383 399
384 def _get_co(self, read_only): 400 def _get_co(self, read_only):
385 co = checkout.GitSvnCheckout( 401 co = checkout.GitSvnCheckout(
386 self.root_dir, self.name[:-4], 402 self.root_dir, self.name[:-4],
387 self.usr, self.pwd, 403 self.usr, self.pwd,
388 self.svn_base, self.svn_trunk) 404 self.svn_base, self.svn_trunk)
389 if read_only: 405 if read_only:
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
435 self.assertEquals(e.filename, 'svn_utils_test.txt') 451 self.assertEquals(e.filename, 'svn_utils_test.txt')
436 self.assertEquals( 452 self.assertEquals(
437 e.status, 453 e.status,
438 'Cannot apply svn property foo to file svn_utils_test.txt.') 454 'Cannot apply svn property foo to file svn_utils_test.txt.')
439 co.prepare() 455 co.prepare()
440 # svn:eol-style is ignored. 456 # svn:eol-style is ignored.
441 svn_props = [('svn:eol-style', 'LF')] 457 svn_props = [('svn:eol-style', 'LF')]
442 co.apply_patch( 458 co.apply_patch(
443 [patch.FilePatchDiff('svn_utils_test.txt', NAKED_PATCH, svn_props)]) 459 [patch.FilePatchDiff('svn_utils_test.txt', NAKED_PATCH, svn_props)])
444 460
461 def testProcess(self):
462 co = checkout.SvnCheckout(
463 self.root_dir, self.name,
464 None, None,
465 self.svn_url)
466 self._test_process(co)
467
445 468
446 class RawCheckout(SvnBaseTest): 469 class RawCheckout(SvnBaseTest):
447 def setUp(self): 470 def setUp(self):
448 super(RawCheckout, self).setUp() 471 super(RawCheckout, self).setUp()
449 # Use a svn checkout as the base. 472 # Use a svn checkout as the base.
450 self.base_co = checkout.SvnCheckout( 473 self.base_co = checkout.SvnCheckout(
451 self.root_dir, self.name, None, None, self.svn_url) 474 self.root_dir, self.name, None, None, self.svn_url)
452 self.base_co.prepare() 475 self.base_co.prepare()
453 476
454 def _get_co(self, read_only): 477 def _get_co(self, read_only):
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
495 self._check(True) 518 self._check(True)
496 519
497 def testException(self): 520 def testException(self):
498 self._check_exception( 521 self._check_exception(
499 self._get_co(True), 522 self._get_co(True),
500 'patching file svn_utils_test.txt\n' 523 'patching file svn_utils_test.txt\n'
501 'Hunk #1 FAILED at 3.\n' 524 'Hunk #1 FAILED at 3.\n'
502 '1 out of 1 hunk FAILED -- saving rejects to file ' 525 '1 out of 1 hunk FAILED -- saving rejects to file '
503 'svn_utils_test.txt.rej\n') 526 'svn_utils_test.txt.rej\n')
504 527
528 def testProcess(self):
529 co = checkout.SvnCheckout(
530 self.root_dir, self.name,
531 None, None,
532 self.svn_url)
533 self._test_process(co)
534
505 535
506 if __name__ == '__main__': 536 if __name__ == '__main__':
507 if '-v' in sys.argv: 537 if '-v' in sys.argv:
508 DEBUGGING = True 538 DEBUGGING = True
509 logging.basicConfig( 539 logging.basicConfig(
510 level=logging.DEBUG, 540 level=logging.DEBUG,
511 format='%(levelname)5s %(filename)15s(%(lineno)3d): %(message)s') 541 format='%(levelname)5s %(filename)15s(%(lineno)3d): %(message)s')
512 else: 542 else:
513 logging.basicConfig( 543 logging.basicConfig(
514 level=logging.ERROR, 544 level=logging.ERROR,
515 format='%(levelname)5s %(filename)15s(%(lineno)3d): %(message)s') 545 format='%(levelname)5s %(filename)15s(%(lineno)3d): %(message)s')
516 unittest.main() 546 unittest.main()
OLDNEW
« no previous file with comments | « patch.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698