Changeset 139771 in webkit
- Timestamp:
- Jan 15, 2013 12:03:10 PM (11 years ago)
- Location:
- trunk/Tools
- Files:
-
- 5 edited
- 1 copied
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/ChangeLog
r139769 r139771 1 2013-01-15 Tim 'mithro' Ansell <mithro@mithis.com> 2 3 Renaming CleanWorkingDirectory step to DiscardLocalChanges to make 4 functionality match the name. 5 https://bugs.webkit.org/show_bug.cgi?id=106870 6 7 Reviewed by Adam Barth. 8 9 * Scripts/webkitpy/tool/commands/download.py: 10 (Clean): 11 (Update): 12 (Build): 13 (BuildAndTest): 14 (CheckStyle): 15 (BuildAttachment): 16 (BuildAndTestAttachment): 17 (AbstractPatchApplyingCommand): 18 (ApplyWatchList): 19 (AbstractPatchLandingCommand): 20 (CreateRollout): 21 * Scripts/webkitpy/tool/steps/__init__.py: 22 * Scripts/webkitpy/tool/steps/cleanworkingdirectory.py: 23 (CleanWorkingDirectory.options): 24 (CleanWorkingDirectory.run): 25 * Scripts/webkitpy/tool/steps/cleanworkingdirectory_unittest.py: 26 * Scripts/webkitpy/tool/steps/discardlocalchanges.py: Copied from Tools/Scripts/webkitpy/tool/steps/cleanworkingdirectory.py. 27 * Scripts/webkitpy/tool/steps/discardlocalchanges_unittest.py: Copied from Tools/Scripts/webkitpy/tool/steps/cleanworkingdirectory_unittest.py. 28 1 29 2013-01-15 Zan Dobersek <zandobersek@gmail.com> 2 30 -
trunk/Tools/Scripts/webkitpy/tool/commands/download.py
r135744 r139771 48 48 help_text = "Clean the working copy" 49 49 steps = [ 50 steps. CleanWorkingDirectory,50 steps.DiscardLocalChanges, 51 51 ] 52 52 … … 59 59 help_text = "Update working copy (used internally)" 60 60 steps = [ 61 steps. CleanWorkingDirectory,61 steps.DiscardLocalChanges, 62 62 steps.Update, 63 63 ] … … 68 68 help_text = "Update working copy and build" 69 69 steps = [ 70 steps. CleanWorkingDirectory,70 steps.DiscardLocalChanges, 71 71 steps.Update, 72 72 steps.Build, … … 81 81 help_text = "Update working copy, build, and run the tests" 82 82 steps = [ 83 steps. CleanWorkingDirectory,83 steps.DiscardLocalChanges, 84 84 steps.Update, 85 85 steps.Build, … … 236 236 argument_names = "ATTACHMENT_ID [ATTACHMENT_IDS]" 237 237 main_steps = [ 238 steps. CleanWorkingDirectory,238 steps.DiscardLocalChanges, 239 239 steps.Update, 240 240 steps.ApplyPatch, … … 248 248 argument_names = "ATTACHMENT_ID [ATTACHMENT_IDS]" 249 249 main_steps = [ 250 steps. CleanWorkingDirectory,250 steps.DiscardLocalChanges, 251 251 steps.Update, 252 252 steps.ApplyPatch, … … 260 260 argument_names = "ATTACHMENT_ID [ATTACHMENT_IDS]" 261 261 main_steps = [ 262 steps. CleanWorkingDirectory,262 steps.DiscardLocalChanges, 263 263 steps.Update, 264 264 steps.ApplyPatch, … … 271 271 prepare_steps = [ 272 272 steps.EnsureLocalCommitIfNeeded, 273 steps.CleanWorkingDirectory WithLocalCommits,273 steps.CleanWorkingDirectory, 274 274 steps.Update, 275 275 ] … … 300 300 argument_names = "ATTACHMENT_ID [ATTACHMENT_IDS]" 301 301 main_steps = [ 302 steps. CleanWorkingDirectory,302 steps.DiscardLocalChanges, 303 303 steps.Update, 304 304 steps.ApplyPatch, … … 311 311 class AbstractPatchLandingCommand(AbstractPatchSequencingCommand): 312 312 main_steps = [ 313 steps. CleanWorkingDirectory,313 steps.DiscardLocalChanges, 314 314 steps.Update, 315 315 steps.ApplyPatch, … … 414 414 """ 415 415 steps = [ 416 steps. CleanWorkingDirectory,416 steps.DiscardLocalChanges, 417 417 steps.Update, 418 418 steps.RevertRevision, … … 425 425 help_text = "Creates a bug to track the broken SVN revision(s) and uploads a rollout patch." 426 426 steps = [ 427 steps. CleanWorkingDirectory,427 steps.DiscardLocalChanges, 428 428 steps.Update, 429 429 steps.RevertRevision, … … 471 471 Commits the revert and updates the bug (including re-opening the bug if necessary).""" 472 472 steps = [ 473 steps. CleanWorkingDirectory,473 steps.DiscardLocalChanges, 474 474 steps.Update, 475 475 steps.RevertRevision, -
trunk/Tools/Scripts/webkitpy/tool/steps/__init__.py
r122311 r139771 36 36 from webkitpy.tool.steps.checkstyle import CheckStyle 37 37 from webkitpy.tool.steps.cleanworkingdirectory import CleanWorkingDirectory 38 from webkitpy.tool.steps.cleanworkingdirectorywithlocalcommits import CleanWorkingDirectoryWithLocalCommits39 38 from webkitpy.tool.steps.closebug import CloseBug 40 39 from webkitpy.tool.steps.closebugforlanddiff import CloseBugForLandDiff … … 43 42 from webkitpy.tool.steps.confirmdiff import ConfirmDiff 44 43 from webkitpy.tool.steps.createbug import CreateBug 44 from webkitpy.tool.steps.discardlocalchanges import DiscardLocalChanges 45 45 from webkitpy.tool.steps.editchangelog import EditChangeLog 46 46 from webkitpy.tool.steps.ensurebugisopenandassigned import EnsureBugIsOpenAndAssigned -
trunk/Tools/Scripts/webkitpy/tool/steps/cleanworkingdirectory.py
r139712 r139771 33 33 34 34 class CleanWorkingDirectory(AbstractStep): 35 def __init__(self, tool, options, allow_local_commits=False):36 AbstractStep.__init__(self, tool, options)37 self._allow_local_commits = allow_local_commits38 35 39 36 @classmethod … … 47 44 if not self._options.clean: 48 45 return 49 if not self._allow_local_commits: 50 if self._tool.scm().has_local_commits() and not self._options.force_clean: 51 raise ScriptError("Repository has local commits, pass --force-clean to continue.") 52 self._tool.scm().discard_local_commits() 46 53 47 if self._tool.scm().has_working_directory_changes() and not self._options.force_clean: 54 48 raise ScriptError("Working directory has changes, pass --force-clean to continue.") 49 55 50 self._tool.scm().discard_working_directory_changes() -
trunk/Tools/Scripts/webkitpy/tool/steps/cleanworkingdirectory_unittest.py
r139712 r139771 42 42 tool._scm.has_working_directory_changes = lambda: True 43 43 self.assertRaises(ScriptError, step.run, {}) 44 self.assertEqual(tool._scm.discard_local_commits.call_count, 0)45 self.assertEqual(tool._scm.discard_working_directory_changes.call_count, 0)46 47 def test_run_local_commits_no_force(self):48 tool = MockTool()49 tool._scm = Mock()50 step = CleanWorkingDirectory(tool, MockOptions(clean=True, force_clean=False))51 tool._scm.has_local_commits = lambda: True52 self.assertRaises(ScriptError, step.run, {})53 self.assertEqual(tool._scm.discard_local_commits.call_count, 0)54 44 self.assertEqual(tool._scm.discard_working_directory_changes.call_count, 0) 55 45 … … 60 50 tool._scm.has_working_directory_changes = lambda: True 61 51 step.run({}) 62 self.assertEqual(tool._scm.discard_local_commits.call_count, 1)63 self.assertEqual(tool._scm.discard_working_directory_changes.call_count, 1)64 65 def test_run_local_commits_force(self):66 tool = MockTool()67 tool._scm = Mock()68 step = CleanWorkingDirectory(tool, MockOptions(clean=True, force_clean=True))69 tool._scm.has_local_commits = lambda: True70 step.run({})71 self.assertEqual(tool._scm.discard_local_commits.call_count, 1)72 52 self.assertEqual(tool._scm.discard_working_directory_changes.call_count, 1) 73 53 … … 79 59 tool._scm.has_local_commits = lambda: False 80 60 step.run({}) 81 self.assertEqual(tool._scm.discard_local_commits.call_count, 1)82 61 self.assertEqual(tool._scm.discard_working_directory_changes.call_count, 1) 83 62 … … 87 66 step = CleanWorkingDirectory(tool, MockOptions(clean=False)) 88 67 step.run({}) 89 self.assertEqual(tool._scm.discard_local_commits.call_count, 0)90 68 self.assertEqual(tool._scm.discard_working_directory_changes.call_count, 0) -
trunk/Tools/Scripts/webkitpy/tool/steps/discardlocalchanges.py
r139769 r139771 1 1 # Copyright (C) 2010 Google Inc. All rights reserved. 2 # 2 # 3 3 # Redistribution and use in source and binary forms, with or without 4 4 # modification, are permitted provided that the following conditions are 5 5 # met: 6 # 6 # 7 7 # * Redistributions of source code must retain the above copyright 8 8 # notice, this list of conditions and the following disclaimer. … … 14 14 # contributors may be used to endorse or promote products derived from 15 15 # this software without specific prior written permission. 16 # 16 # 17 17 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18 18 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT … … 27 27 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 28 29 from webkitpy.tool.steps.cleanworkingdirectory import CleanWorkingDirectory 29 from webkitpy.tool.steps.abstractstep import AbstractStep 30 from webkitpy.tool.steps.options import Options 31 from webkitpy.common.system.executive import ScriptError 30 32 31 class CleanWorkingDirectoryWithLocalCommits(CleanWorkingDirectory): 32 def __init__(self, tool, options): 33 # FIXME: This a bit of a hack. Consider doing this more cleanly. 34 CleanWorkingDirectory.__init__(self, tool, options, allow_local_commits=True) 33 34 class DiscardLocalChanges(AbstractStep): 35 36 @classmethod 37 def options(cls): 38 return AbstractStep.options() + [ 39 Options.clean, 40 Options.force_clean, 41 ] 42 43 def run(self, state): 44 if not self._options.clean: 45 return 46 47 if not self._options.force_clean: 48 if self._tool.scm().has_working_directory_changes(): 49 raise ScriptError("Working directory has changes, pass --force-clean to continue.") 50 if self._tool.scm().has_local_commits(): 51 raise ScriptError("Repository has local commits, pass --force-clean to continue.") 52 self._tool.scm().discard_local_changes() -
trunk/Tools/Scripts/webkitpy/tool/steps/discardlocalchanges_unittest.py
r139769 r139771 31 31 from webkitpy.thirdparty.mock import Mock 32 32 from webkitpy.tool.mocktool import MockOptions, MockTool 33 from webkitpy.tool.steps. cleanworkingdirectory import CleanWorkingDirectory33 from webkitpy.tool.steps.discardlocalchanges import DiscardLocalChanges 34 34 from webkitpy.common.system.executive import ScriptError 35 35 36 36 37 class CleanWorkingDirectoryTest(unittest.TestCase):38 def test_ run_working_directory_changes_no_force(self):37 class DiscardLocalChangesTest(unittest.TestCase): 38 def test_skip_on_clean(self): 39 39 tool = MockTool() 40 40 tool._scm = Mock() 41 step = CleanWorkingDirectory(tool, MockOptions(clean=True, force_clean=False)) 42 tool._scm.has_working_directory_changes = lambda: True 43 self.assertRaises(ScriptError, step.run, {}) 44 self.assertEqual(tool._scm.discard_local_commits.call_count, 0) 45 self.assertEqual(tool._scm.discard_working_directory_changes.call_count, 0) 41 step = DiscardLocalChanges(tool, MockOptions(clean=False)) 42 step.run({}) 43 self.assertEqual(tool._scm.discard_local_changes.call_count, 0) 46 44 47 def test_ run_local_commits_no_force(self):45 def test_working_changes_exist_with_force(self): 48 46 tool = MockTool() 49 47 tool._scm = Mock() 50 step = CleanWorkingDirectory(tool, MockOptions(clean=True, force_clean=False))51 tool._scm.has_local_commits = lambda: True52 s elf.assertRaises(ScriptError, step.run, {})53 s elf.assertEqual(tool._scm.discard_local_commits.call_count, 0)54 self.assertEqual(tool._scm.discard_ working_directory_changes.call_count, 0)48 tool._scm.has_working_directory_changes = lambda: True 49 tool._scm.has_local_commits = lambda: False 50 step = DiscardLocalChanges(tool, MockOptions(clean=True, force_clean=True)) 51 step.run({}) 52 self.assertEqual(tool._scm.discard_local_changes.call_count, 1) 55 53 56 def test_ run_working_directory_changes_force(self):54 def test_local_commits_exist_with_force(self): 57 55 tool = MockTool() 58 56 tool._scm = Mock() 59 step = CleanWorkingDirectory(tool, MockOptions(clean=True, force_clean=True)) 60 tool._scm.has_working_directory_changes = lambda: True 57 tool._scm.has_working_directory_changes = lambda: False 58 tool._scm.has_local_commits = lambda: True 59 step = DiscardLocalChanges(tool, MockOptions(clean=True, force_clean=True)) 61 60 step.run({}) 62 self.assertEqual(tool._scm.discard_local_commits.call_count, 1) 63 self.assertEqual(tool._scm.discard_working_directory_changes.call_count, 1) 61 self.assertEqual(tool._scm.discard_local_changes.call_count, 1) 64 62 65 def test_ run_local_commits_force(self):63 def test_local_commits_and_working_changes_exist_with_force(self): 66 64 tool = MockTool() 67 65 tool._scm = Mock() 68 step = CleanWorkingDirectory(tool, MockOptions(clean=True, force_clean=True))66 tool._scm.has_working_directory_changes = lambda: True 69 67 tool._scm.has_local_commits = lambda: True 68 step = DiscardLocalChanges(tool, MockOptions(clean=True, force_clean=True)) 70 69 step.run({}) 71 self.assertEqual(tool._scm.discard_local_commits.call_count, 1) 72 self.assertEqual(tool._scm.discard_working_directory_changes.call_count, 1) 70 self.assertEqual(tool._scm.discard_local_changes.call_count, 1) 73 71 74 def test_ run_no_local_changes(self):72 def test_no_changes_exist_with_force(self): 75 73 tool = MockTool() 76 74 tool._scm = Mock() 77 step = CleanWorkingDirectory(tool, MockOptions(clean=True, force_clean=False))78 75 tool._scm.has_working_directory_changes = lambda: False 79 76 tool._scm.has_local_commits = lambda: False 77 step = DiscardLocalChanges(tool, MockOptions(clean=True, force_clean=True)) 80 78 step.run({}) 81 self.assertEqual(tool._scm.discard_local_commits.call_count, 1) 82 self.assertEqual(tool._scm.discard_working_directory_changes.call_count, 1) 79 self.assertEqual(tool._scm.discard_local_changes.call_count, 1) 83 80 84 def test_ no_clean(self):81 def test_error_working_changes_exist_without_force(self): 85 82 tool = MockTool() 86 83 tool._scm = Mock() 87 step = CleanWorkingDirectory(tool, MockOptions(clean=False)) 88 step.run({}) 89 self.assertEqual(tool._scm.discard_local_commits.call_count, 0) 90 self.assertEqual(tool._scm.discard_working_directory_changes.call_count, 0) 84 tool._scm.has_working_directory_changes = lambda: True 85 tool._scm.has_local_commits = lambda: False 86 step = DiscardLocalChanges(tool, MockOptions(clean=True, force_clean=False)) 87 self.assertRaises(ScriptError, step.run, {}) 88 self.assertEqual(tool._scm.discard_local_changes.call_count, 0) 89 90 def test_error_local_commits_exist_without_force(self): 91 tool = MockTool() 92 tool._scm = Mock() 93 tool._scm.has_working_directory_changes = lambda: False 94 tool._scm.has_local_commits = lambda: True 95 step = DiscardLocalChanges(tool, MockOptions(clean=True, force_clean=False)) 96 self.assertRaises(ScriptError, step.run, {}) 97 self.assertEqual(tool._scm.discard_local_changes.call_count, 0)
Note: See TracChangeset
for help on using the changeset viewer.