Refactoring: Remove global configs in release scripts.
authormachenbach@chromium.org <machenbach@chromium.org>
Tue, 23 Sep 2014 14:41:36 +0000 (14:41 +0000)
committermachenbach@chromium.org <machenbach@chromium.org>
Tue, 23 Sep 2014 14:41:36 +0000 (14:41 +0000)
TBR=tandrii@chromium.org
TEST=script_test.py

Review URL: https://codereview.chromium.org/594773003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24154 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

tools/push-to-trunk/auto_push.py
tools/push-to-trunk/auto_roll.py
tools/push-to-trunk/auto_tag.py
tools/push-to-trunk/bump_up_version.py
tools/push-to-trunk/chromium_roll.py
tools/push-to-trunk/common_includes.py
tools/push-to-trunk/merge_to_branch.py
tools/push-to-trunk/push_to_trunk.py
tools/push-to-trunk/releases.py
tools/push-to-trunk/test_scripts.py

index 5a061f6..fef3b53 100755 (executable)
@@ -36,16 +36,8 @@ import urllib
 from common_includes import *
 import push_to_trunk
 
-SETTINGS_LOCATION = "SETTINGS_LOCATION"
-
-CONFIG = {
-  PERSISTFILE_BASENAME: "/tmp/v8-auto-push-tempfile",
-  SETTINGS_LOCATION: "~/.auto-roll",
-}
-
 PUSH_MESSAGE_RE = re.compile(r".* \(based on bleeding_edge revision r(\d+)\)$")
 
-
 class Preparation(Step):
   MESSAGE = "Preparation."
 
@@ -58,7 +50,7 @@ class CheckAutoPushSettings(Step):
   MESSAGE = "Checking settings file."
 
   def RunStep(self):
-    settings_file = os.path.realpath(self.Config(SETTINGS_LOCATION))
+    settings_file = os.path.realpath(self.Config("SETTINGS_LOCATION"))
     if os.path.exists(settings_file):
       settings_dict = json.loads(FileToText(settings_file))
       if settings_dict.get("enable_auto_roll") is False:
@@ -118,9 +110,8 @@ class PushToTrunk(Step):
 
     # TODO(machenbach): Update the script before calling it.
     if self._options.push:
-      P = push_to_trunk.PushToTrunk
       self._side_effect_handler.Call(
-          P(push_to_trunk.CONFIG, self._side_effect_handler).Run,
+          push_to_trunk.PushToTrunk().Run,
           ["--author", self._options.author,
            "--reviewer", self._options.reviewer,
            "--revision", self["lkgr"],
@@ -140,6 +131,12 @@ class AutoPush(ScriptsBase):
     options.requires_editor = False
     return True
 
+  def _Config(self):
+    return {
+      "PERSISTFILE_BASENAME": "/tmp/v8-auto-push-tempfile",
+      "SETTINGS_LOCATION": "~/.auto-roll",
+    }
+
   def _Steps(self):
     return [
       Preparation,
@@ -152,4 +149,4 @@ class AutoPush(ScriptsBase):
 
 
 if __name__ == "__main__":  # pragma: no cover
-  sys.exit(AutoPush(CONFIG).Run())
+  sys.exit(AutoPush().Run())
index a40c356..120e633 100755 (executable)
@@ -12,13 +12,6 @@ import urllib
 from common_includes import *
 import chromium_roll
 
-CLUSTERFUZZ_API_KEY_FILE = "CLUSTERFUZZ_API_KEY_FILE"
-
-CONFIG = {
-  PERSISTFILE_BASENAME: "/tmp/v8-auto-roll-tempfile",
-  CLUSTERFUZZ_API_KEY_FILE: ".cf_api_key",
-}
-
 
 class CheckActiveRoll(Step):
   MESSAGE = "Check active roll."
@@ -76,10 +69,10 @@ class CheckClusterFuzz(Step):
   MESSAGE = "Check ClusterFuzz api for new problems."
 
   def RunStep(self):
-    if not os.path.exists(self.Config(CLUSTERFUZZ_API_KEY_FILE)):
+    if not os.path.exists(self.Config("CLUSTERFUZZ_API_KEY_FILE")):
       print "Skipping ClusterFuzz check. No api key file found."
       return False
-    api_key = FileToText(self.Config(CLUSTERFUZZ_API_KEY_FILE))
+    api_key = FileToText(self.Config("CLUSTERFUZZ_API_KEY_FILE"))
     # Check for open, reproducible issues that have no associated bug.
     result = self._side_effect_handler.ReadClusterFuzzAPI(
         api_key, job_type="linux_asan_d8_dbg", reproducible="True",
@@ -106,10 +99,7 @@ class RollChromium(Step):
             "--sheriff", "--googlers-mapping", self._options.googlers_mapping])
       if self._options.dry_run:
         args.extend(["--dry-run"])
-      R = chromium_roll.ChromiumRoll
-      self._side_effect_handler.Call(
-          R(chromium_roll.CONFIG, self._side_effect_handler).Run,
-          args)
+      self._side_effect_handler.Call(chromium_roll.ChromiumRoll().Run, args)
 
 
 class AutoRoll(ScriptsBase):
@@ -129,6 +119,12 @@ class AutoRoll(ScriptsBase):
       return False
     return True
 
+  def _Config(self):
+    return {
+      "PERSISTFILE_BASENAME": "/tmp/v8-auto-roll-tempfile",
+      "CLUSTERFUZZ_API_KEY_FILE": ".cf_api_key",
+    }
+
   def _Steps(self):
     return [
       CheckActiveRoll,
@@ -140,4 +136,4 @@ class AutoRoll(ScriptsBase):
 
 
 if __name__ == "__main__":  # pragma: no cover
-  sys.exit(AutoRoll(CONFIG).Run())
+  sys.exit(AutoRoll().Run())
index 0800896..175e10e 100755 (executable)
@@ -8,11 +8,6 @@ import sys
 
 from common_includes import *
 
-CONFIG = {
-  BRANCHNAME: "auto-tag-v8",
-  PERSISTFILE_BASENAME: "/tmp/v8-auto-tag-tempfile",
-}
-
 
 class Preparation(Step):
   MESSAGE = "Preparation."
@@ -28,7 +23,7 @@ class GetTags(Step):
   MESSAGE = "Get all V8 tags."
 
   def RunStep(self):
-    self.GitCreateBranch(self._config[BRANCHNAME])
+    self.GitCreateBranch(self._config["BRANCHNAME"])
 
     # Get remote tags.
     tags = filter(lambda s: re.match(r"^svn/tags/[\d+\.]+$", s),
@@ -182,6 +177,12 @@ class AutoTag(ScriptsBase):
     options.force_upload = True
     return True
 
+  def _Config(self):
+    return {
+      "BRANCHNAME": "auto-tag-v8",
+      "PERSISTFILE_BASENAME": "/tmp/v8-auto-tag-tempfile",
+    }
+
   def _Steps(self):
     return [
       Preparation,
@@ -195,4 +196,4 @@ class AutoTag(ScriptsBase):
 
 
 if __name__ == "__main__":  # pragma: no cover
-  sys.exit(AutoTag(CONFIG).Run())
+  sys.exit(AutoTag().Run())
index 2e5d08f..c9f052b 100755 (executable)
@@ -25,11 +25,6 @@ import sys
 
 from common_includes import *
 
-CONFIG = {
-  PERSISTFILE_BASENAME: "/tmp/v8-bump-up-version-tempfile",
-  PATCH_FILE: "/tmp/v8-bump-up-version-tempfile-patch-file",
-}
-
 VERSION_BRANCH = "auto-bump-up-version"
 
 
@@ -227,6 +222,11 @@ class BumpUpVersion(ScriptsBase):
     options.force_upload = True
     return True
 
+  def _Config(self):
+    return {
+      "PERSISTFILE_BASENAME": "/tmp/v8-bump-up-version-tempfile",
+    }
+
   def _Steps(self):
     return [
       Preparation,
@@ -242,4 +242,4 @@ class BumpUpVersion(ScriptsBase):
     ]
 
 if __name__ == "__main__":  # pragma: no cover
-  sys.exit(BumpUpVersion(CONFIG).Run())
+  sys.exit(BumpUpVersion().Run())
index 35603a2..dc5e6eb 100755 (executable)
@@ -9,12 +9,6 @@ import sys
 
 from common_includes import *
 
-CHROMIUM = "CHROMIUM"
-
-CONFIG = {
-  PERSISTFILE_BASENAME: "/tmp/v8-chromium-roll-tempfile",
-}
-
 
 class Preparation(Step):
   MESSAGE = "Preparation."
@@ -116,7 +110,7 @@ class CleanUp(Step):
           % self["trunk_revision"])
 
     # Clean up all temporary files.
-    Command("rm", "-f %s*" % self._config[PERSISTFILE_BASENAME])
+    Command("rm", "-f %s*" % self._config["PERSISTFILE_BASENAME"])
 
 
 class ChromiumRoll(ScriptsBase):
@@ -140,6 +134,11 @@ class ChromiumRoll(ScriptsBase):
     options.manual = False
     return True
 
+  def _Config(self):
+    return {
+      "PERSISTFILE_BASENAME": "/tmp/v8-chromium-roll-tempfile",
+    }
+
   def _Steps(self):
     return [
       Preparation,
@@ -154,4 +153,4 @@ class ChromiumRoll(ScriptsBase):
 
 
 if __name__ == "__main__":  # pragma: no cover
-  sys.exit(ChromiumRoll(CONFIG).Run())
+  sys.exit(ChromiumRoll().Run())
index 83e0156..00fb097 100644 (file)
@@ -45,13 +45,6 @@ import urllib2
 from git_recipes import GitRecipesMixin
 from git_recipes import GitFailedException
 
-PERSISTFILE_BASENAME = "PERSISTFILE_BASENAME"
-BRANCHNAME = "BRANCHNAME"
-CHANGELOG_FILE = "CHANGELOG_FILE"
-CHANGELOG_ENTRY_FILE = "CHANGELOG_ENTRY_FILE"
-COMMITMSG_FILE = "COMMITMSG_FILE"
-PATCH_FILE = "PATCH_FILE"
-
 VERSION_FILE = os.path.join("src", "version.cc")
 
 # V8 base directory.
@@ -294,7 +287,7 @@ class Step(GitRecipesMixin):
 
   def Run(self):
     # Restore state.
-    state_file = "%s-state.json" % self._config[PERSISTFILE_BASENAME]
+    state_file = "%s-state.json" % self._config["PERSISTFILE_BASENAME"]
     if not self._state and os.path.exists(state_file):
       self._state.update(json.loads(FileToText(state_file)))
 
@@ -433,15 +426,15 @@ class Step(GitRecipesMixin):
 
   def PrepareBranch(self):
     # Delete the branch that will be created later if it exists already.
-    self.DeleteBranch(self._config[BRANCHNAME])
+    self.DeleteBranch(self._config["BRANCHNAME"])
 
   def CommonCleanup(self):
     self.GitCheckout(self["current_branch"])
-    if self._config[BRANCHNAME] != self["current_branch"]:
-      self.GitDeleteBranch(self._config[BRANCHNAME])
+    if self._config["BRANCHNAME"] != self["current_branch"]:
+      self.GitDeleteBranch(self._config["BRANCHNAME"])
 
     # Clean up all temporary files.
-    for f in glob.iglob("%s*" % self._config[PERSISTFILE_BASENAME]):
+    for f in glob.iglob("%s*" % self._config["PERSISTFILE_BASENAME"]):
       if os.path.isfile(f):
         os.remove(f)
       if os.path.isdir(f):
@@ -526,12 +519,12 @@ class Step(GitRecipesMixin):
 
   def SVNCommit(self, root, commit_message):
     patch = self.GitDiff("HEAD^", "HEAD")
-    TextToFile(patch, self._config[PATCH_FILE])
+    TextToFile(patch, self._config["PATCH_FILE"])
     self.Command("svn", "update", cwd=self._options.svn)
     if self.Command("svn", "status", cwd=self._options.svn) != "":
       self.Die("SVN checkout not clean.")
     if not self.Command("patch", "-d %s -p1 -i %s" %
-                        (root, self._config[PATCH_FILE]),
+                        (root, self._config["PATCH_FILE"]),
                         cwd=self._options.svn):
       self.Die("Could not apply patch.")
     self.Command(
@@ -608,9 +601,11 @@ def MakeStep(step_class=Step, number=0, state=None, config=None,
 
 class ScriptsBase(object):
   # TODO(machenbach): Move static config here.
-  def __init__(self, config, side_effect_handler=DEFAULT_SIDE_EFFECT_HANDLER,
+  def __init__(self,
+               config=None,
+               side_effect_handler=DEFAULT_SIDE_EFFECT_HANDLER,
                state=None):
-    self._config = config
+    self._config = config or self._Config()
     self._side_effect_handler = side_effect_handler
     self._state = state if state is not None else {}
 
@@ -626,6 +621,9 @@ class ScriptsBase(object):
   def _Steps(self):  # pragma: no cover
     raise Exception("Not implemented.")
 
+  def _Config(self):
+    return {}
+
   def MakeOptions(self, args=None):
     parser = argparse.ArgumentParser(description=self._Description())
     parser.add_argument("-a", "--author", default="",
@@ -691,7 +689,7 @@ class ScriptsBase(object):
     if not options:
       return 1
 
-    state_file = "%s-state.json" % self._config[PERSISTFILE_BASENAME]
+    state_file = "%s-state.json" % self._config["PERSISTFILE_BASENAME"]
     if options.step == 0 and os.path.exists(state_file):
       os.remove(state_file)
 
index c5cabf0..3fd3450 100755 (executable)
@@ -32,31 +32,16 @@ import sys
 
 from common_includes import *
 
-ALREADY_MERGING_SENTINEL_FILE = "ALREADY_MERGING_SENTINEL_FILE"
-COMMIT_HASHES_FILE = "COMMIT_HASHES_FILE"
-TEMPORARY_PATCH_FILE = "TEMPORARY_PATCH_FILE"
-
-CONFIG = {
-  BRANCHNAME: "prepare-merge",
-  PERSISTFILE_BASENAME: "/tmp/v8-merge-to-branch-tempfile",
-  ALREADY_MERGING_SENTINEL_FILE:
-      "/tmp/v8-merge-to-branch-tempfile-already-merging",
-  TEMPORARY_PATCH_FILE: "/tmp/v8-prepare-merge-tempfile-temporary-patch",
-  COMMITMSG_FILE: "/tmp/v8-prepare-merge-tempfile-commitmsg",
-  COMMIT_HASHES_FILE: "/tmp/v8-merge-to-branch-tempfile-PATCH_COMMIT_HASHES",
-}
-
-
 class Preparation(Step):
   MESSAGE = "Preparation."
 
   def RunStep(self):
-    if os.path.exists(self.Config(ALREADY_MERGING_SENTINEL_FILE)):
+    if os.path.exists(self.Config("ALREADY_MERGING_SENTINEL_FILE")):
       if self._options.force:
-        os.remove(self.Config(ALREADY_MERGING_SENTINEL_FILE))
+        os.remove(self.Config("ALREADY_MERGING_SENTINEL_FILE"))
       elif self._options.step == 0:  # pragma: no cover
         self.Die("A merge is already in progress")
-    open(self.Config(ALREADY_MERGING_SENTINEL_FILE), "a").close()
+    open(self.Config("ALREADY_MERGING_SENTINEL_FILE"), "a").close()
 
     self.InitialEnvironmentChecks(self.default_cwd)
     if self._options.revert_bleeding_edge:
@@ -74,7 +59,7 @@ class CreateBranch(Step):
   MESSAGE = "Create a fresh branch for the patch."
 
   def RunStep(self):
-    self.GitCreateBranch(self.Config(BRANCHNAME),
+    self.GitCreateBranch(self.Config("BRANCHNAME"),
                          "svn/%s" % self["merge_to_branch"])
 
 
@@ -157,8 +142,8 @@ class ApplyPatches(Step):
       print("Applying patch for %s to %s..."
             % (commit_hash, self["merge_to_branch"]))
       patch = self.GitGetPatch(commit_hash)
-      TextToFile(patch, self.Config(TEMPORARY_PATCH_FILE))
-      self.ApplyPatch(self.Config(TEMPORARY_PATCH_FILE), self._options.revert)
+      TextToFile(patch, self.Config("TEMPORARY_PATCH_FILE"))
+      self.ApplyPatch(self.Config("TEMPORARY_PATCH_FILE"), self._options.revert)
     if self._options.patch:
       self.ApplyPatch(self._options.patch, self._options.revert)
 
@@ -213,15 +198,15 @@ class CommitLocal(Step):
       title = ("Version %s (merged %s)"
                % (self["version"], self["revision_list"]))
     self["new_commit_msg"] = "%s\n\n%s" % (title, self["new_commit_msg"])
-    TextToFile(self["new_commit_msg"], self.Config(COMMITMSG_FILE))
-    self.GitCommit(file_name=self.Config(COMMITMSG_FILE))
+    TextToFile(self["new_commit_msg"], self.Config("COMMITMSG_FILE"))
+    self.GitCommit(file_name=self.Config("COMMITMSG_FILE"))
 
 
 class CommitRepository(Step):
   MESSAGE = "Commit to the repository."
 
   def RunStep(self):
-    self.GitCheckout(self.Config(BRANCHNAME))
+    self.GitCheckout(self.Config("BRANCHNAME"))
     self.WaitForLGTM()
     self.GitPresubmit()
     self.GitDCommit()
@@ -310,6 +295,16 @@ class MergeToBranch(ScriptsBase):
     options.bypass_upload_hooks = True
     return True
 
+  def _Config(self):
+    return {
+      "BRANCHNAME": "prepare-merge",
+      "PERSISTFILE_BASENAME": "/tmp/v8-merge-to-branch-tempfile",
+      "ALREADY_MERGING_SENTINEL_FILE":
+          "/tmp/v8-merge-to-branch-tempfile-already-merging",
+      "TEMPORARY_PATCH_FILE": "/tmp/v8-prepare-merge-tempfile-temporary-patch",
+      "COMMITMSG_FILE": "/tmp/v8-prepare-merge-tempfile-commitmsg",
+    }
+
   def _Steps(self):
     return [
       Preparation,
@@ -329,4 +324,4 @@ class MergeToBranch(ScriptsBase):
 
 
 if __name__ == "__main__":  # pragma: no cover
-  sys.exit(MergeToBranch(CONFIG).Run())
+  sys.exit(MergeToBranch().Run())
index 4336880..8a9629e 100755 (executable)
@@ -34,18 +34,6 @@ import urllib2
 
 from common_includes import *
 
-TRUNKBRANCH = "TRUNKBRANCH"
-
-CONFIG = {
-  BRANCHNAME: "prepare-push",
-  TRUNKBRANCH: "trunk-push",
-  PERSISTFILE_BASENAME: "/tmp/v8-push-to-trunk-tempfile",
-  CHANGELOG_FILE: "ChangeLog",
-  CHANGELOG_ENTRY_FILE: "/tmp/v8-push-to-trunk-tempfile-changelog-entry",
-  PATCH_FILE: "/tmp/v8-push-to-trunk-tempfile-patch-file",
-  COMMITMSG_FILE: "/tmp/v8-push-to-trunk-tempfile-commitmsg",
-}
-
 PUSH_MESSAGE_SUFFIX = " (based on bleeding_edge revision r%d)"
 PUSH_MESSAGE_RE = re.compile(r".* \(based on bleeding_edge revision r(\d+)\)$")
 
@@ -56,19 +44,19 @@ class Preparation(Step):
     self.InitialEnvironmentChecks(self.default_cwd)
     self.CommonPrepare()
 
-    if(self["current_branch"] == self.Config(TRUNKBRANCH)
-       or self["current_branch"] == self.Config(BRANCHNAME)):
+    if(self["current_branch"] == self.Config("TRUNKBRANCH")
+       or self["current_branch"] == self.Config("BRANCHNAME")):
       print "Warning: Script started on branch %s" % self["current_branch"]
 
     self.PrepareBranch()
-    self.DeleteBranch(self.Config(TRUNKBRANCH))
+    self.DeleteBranch(self.Config("TRUNKBRANCH"))
 
 
 class FreshBranch(Step):
   MESSAGE = "Create a fresh branch."
 
   def RunStep(self):
-    self.GitCreateBranch(self.Config(BRANCHNAME), "svn/bleeding_edge")
+    self.GitCreateBranch(self.Config("BRANCHNAME"), "svn/bleeding_edge")
 
 
 class PreparePushRevision(Step):
@@ -204,7 +192,7 @@ class PrepareChangeLog(Step):
   def RunStep(self):
     self["date"] = self.GetDate()
     output = "%s: Version %s\n\n" % (self["date"], self["version"])
-    TextToFile(output, self.Config(CHANGELOG_ENTRY_FILE))
+    TextToFile(output, self.Config("CHANGELOG_ENTRY_FILE"))
     commits = self.GitLog(format="%H",
         git_hash="%s..%s" % (self["last_push_bleeding_edge"],
                              self["push_hash"]))
@@ -220,17 +208,17 @@ class PrepareChangeLog(Step):
 
     # Auto-format commit messages.
     body = MakeChangeLogBody(commit_messages, auto_format=True)
-    AppendToFile(body, self.Config(CHANGELOG_ENTRY_FILE))
+    AppendToFile(body, self.Config("CHANGELOG_ENTRY_FILE"))
 
     msg = ("        Performance and stability improvements on all platforms."
            "\n#\n# The change log above is auto-generated. Please review if "
            "all relevant\n# commit messages from the list below are included."
            "\n# All lines starting with # will be stripped.\n#\n")
-    AppendToFile(msg, self.Config(CHANGELOG_ENTRY_FILE))
+    AppendToFile(msg, self.Config("CHANGELOG_ENTRY_FILE"))
 
     # Include unformatted commit messages as a reference in a comment.
     comment_body = MakeComment(MakeChangeLogBody(commit_messages))
-    AppendToFile(comment_body, self.Config(CHANGELOG_ENTRY_FILE))
+    AppendToFile(comment_body, self.Config("CHANGELOG_ENTRY_FILE"))
 
 
 class EditChangeLog(Step):
@@ -241,10 +229,10 @@ class EditChangeLog(Step):
            "entry, then edit its contents to your liking. When you're done, "
            "save the file and exit your EDITOR. ")
     self.ReadLine(default="")
-    self.Editor(self.Config(CHANGELOG_ENTRY_FILE))
+    self.Editor(self.Config("CHANGELOG_ENTRY_FILE"))
 
     # Strip comments and reformat with correct indentation.
-    changelog_entry = FileToText(self.Config(CHANGELOG_ENTRY_FILE)).rstrip()
+    changelog_entry = FileToText(self.Config("CHANGELOG_ENTRY_FILE")).rstrip()
     changelog_entry = StripComments(changelog_entry)
     changelog_entry = "\n".join(map(Fill80, changelog_entry.splitlines()))
     changelog_entry = changelog_entry.lstrip()
@@ -253,7 +241,7 @@ class EditChangeLog(Step):
       self.Die("Empty ChangeLog entry.")
 
     # Safe new change log for adding it later to the trunk patch.
-    TextToFile(changelog_entry, self.Config(CHANGELOG_ENTRY_FILE))
+    TextToFile(changelog_entry, self.Config("CHANGELOG_ENTRY_FILE"))
 
 
 class StragglerCommits(Step):
@@ -272,10 +260,10 @@ class SquashCommits(Step):
     # Instead of relying on "git rebase -i", we'll just create a diff, because
     # that's easier to automate.
     TextToFile(self.GitDiff("svn/trunk", self["push_hash"]),
-               self.Config(PATCH_FILE))
+               self.Config("PATCH_FILE"))
 
     # Convert the ChangeLog entry to commit message format.
-    text = FileToText(self.Config(CHANGELOG_ENTRY_FILE))
+    text = FileToText(self.Config("CHANGELOG_ENTRY_FILE"))
 
     # Remove date and trailing white space.
     text = re.sub(r"^%s: " % self["date"], "", text.rstrip())
@@ -295,22 +283,22 @@ class SquashCommits(Step):
 
     if not text:  # pragma: no cover
       self.Die("Commit message editing failed.")
-    TextToFile(text, self.Config(COMMITMSG_FILE))
+    TextToFile(text, self.Config("COMMITMSG_FILE"))
 
 
 class NewBranch(Step):
   MESSAGE = "Create a new branch from trunk."
 
   def RunStep(self):
-    self.GitCreateBranch(self.Config(TRUNKBRANCH), "svn/trunk")
+    self.GitCreateBranch(self.Config("TRUNKBRANCH"), "svn/trunk")
 
 
 class ApplyChanges(Step):
   MESSAGE = "Apply squashed changes."
 
   def RunStep(self):
-    self.ApplyPatch(self.Config(PATCH_FILE))
-    os.remove(self.Config(PATCH_FILE))
+    self.ApplyPatch(self.Config("PATCH_FILE"))
+    os.remove(self.Config("PATCH_FILE"))
 
 
 class AddChangeLog(Step):
@@ -320,12 +308,12 @@ class AddChangeLog(Step):
     # The change log has been modified by the patch. Reset it to the version
     # on trunk and apply the exact changes determined by this PrepareChangeLog
     # step above.
-    self.GitCheckoutFile(self.Config(CHANGELOG_FILE), "svn/trunk")
-    changelog_entry = FileToText(self.Config(CHANGELOG_ENTRY_FILE))
-    old_change_log = FileToText(self.Config(CHANGELOG_FILE))
+    self.GitCheckoutFile(self.Config("CHANGELOG_FILE"), "svn/trunk")
+    changelog_entry = FileToText(self.Config("CHANGELOG_ENTRY_FILE"))
+    old_change_log = FileToText(self.Config("CHANGELOG_FILE"))
     new_change_log = "%s\n\n\n%s" % (changelog_entry, old_change_log)
-    TextToFile(new_change_log, self.Config(CHANGELOG_FILE))
-    os.remove(self.Config(CHANGELOG_ENTRY_FILE))
+    TextToFile(new_change_log, self.Config("CHANGELOG_FILE"))
+    os.remove(self.Config("CHANGELOG_ENTRY_FILE"))
 
 
 class SetVersion(Step):
@@ -342,8 +330,8 @@ class CommitTrunk(Step):
   MESSAGE = "Commit to local trunk branch."
 
   def RunStep(self):
-    self.GitCommit(file_name = self.Config(COMMITMSG_FILE))
-    os.remove(self.Config(COMMITMSG_FILE))
+    self.GitCommit(file_name = self.Config("COMMITMSG_FILE"))
+    os.remove(self.Config("COMMITMSG_FILE"))
 
 
 class SanityCheck(Step):
@@ -400,8 +388,8 @@ class CleanUp(Step):
     print "%s\ttrunk\t%s" % (self["version"], self["trunk_revision"])
 
     self.CommonCleanup()
-    if self.Config(TRUNKBRANCH) != self["current_branch"]:
-      self.GitDeleteBranch(self.Config(TRUNKBRANCH))
+    if self.Config("TRUNKBRANCH") != self["current_branch"]:
+      self.GitDeleteBranch(self.Config("TRUNKBRANCH"))
 
 
 class PushToTrunk(ScriptsBase):
@@ -437,6 +425,17 @@ class PushToTrunk(ScriptsBase):
     options.tbr_commit = not options.manual
     return True
 
+  def _Config(self):
+    return {
+      "BRANCHNAME": "prepare-push",
+      "TRUNKBRANCH": "trunk-push",
+      "PERSISTFILE_BASENAME": "/tmp/v8-push-to-trunk-tempfile",
+      "CHANGELOG_FILE": "ChangeLog",
+      "CHANGELOG_ENTRY_FILE": "/tmp/v8-push-to-trunk-tempfile-changelog-entry",
+      "PATCH_FILE": "/tmp/v8-push-to-trunk-tempfile-patch-file",
+      "COMMITMSG_FILE": "/tmp/v8-push-to-trunk-tempfile-commitmsg",
+    }
+
   def _Steps(self):
     return [
       Preparation,
@@ -462,4 +461,4 @@ class PushToTrunk(ScriptsBase):
 
 
 if __name__ == "__main__":  # pragma: no cover
-  sys.exit(PushToTrunk(CONFIG).Run())
+  sys.exit(PushToTrunk().Run())
index fd1f725..1d26198 100755 (executable)
@@ -20,11 +20,9 @@ import sys
 
 from common_includes import *
 
-CHROMIUM = "CHROMIUM"
-
 CONFIG = {
-  BRANCHNAME: "retrieve-v8-releases",
-  PERSISTFILE_BASENAME: "/tmp/v8-releases-tempfile",
+  "BRANCHNAME": "retrieve-v8-releases",
+  "PERSISTFILE_BASENAME": "/tmp/v8-releases-tempfile",
 }
 
 # Expression for retrieving the bleeding edge revision from a commit message.
@@ -231,7 +229,7 @@ class RetrieveV8Releases(Step):
     return releases
 
   def RunStep(self):
-    self.GitCreateBranch(self._config[BRANCHNAME])
+    self.GitCreateBranch(self._config["BRANCHNAME"])
     # Get relevant remote branches, e.g. "svn/3.25".
     branches = filter(lambda s: re.match(r"^svn/\d+\.\d+$", s),
                       self.GitRemotes())
@@ -284,7 +282,7 @@ class UpdateChromiumCheckout(Step):
     cwd = self._options.chromium
     self.GitCheckout("master", cwd=cwd)
     self.GitPull(cwd=cwd)
-    self.GitCreateBranch(self.Config(BRANCHNAME), cwd=cwd)
+    self.GitCreateBranch(self.Config("BRANCHNAME"), cwd=cwd)
 
 
 def ConvertToCommitNumber(step, revision):
@@ -408,7 +406,7 @@ class CleanUp(Step):
 
   def RunStep(self):
     self.GitCheckout("master", cwd=self._options.chromium)
-    self.GitDeleteBranch(self.Config(BRANCHNAME), cwd=self._options.chromium)
+    self.GitDeleteBranch(self.Config("BRANCHNAME"), cwd=self._options.chromium)
     self.CommonCleanup()
 
 
@@ -449,6 +447,12 @@ class Releases(ScriptsBase):
   def _ProcessOptions(self, options):  # pragma: no cover
     return True
 
+  def _Config(self):
+    return {
+      "BRANCHNAME": "retrieve-v8-releases",
+      "PERSISTFILE_BASENAME": "/tmp/v8-releases-tempfile",
+    }
+
   def _Steps(self):
     return [
       Preparation,
@@ -463,4 +467,4 @@ class Releases(ScriptsBase):
 
 
 if __name__ == "__main__":  # pragma: no cover
-  sys.exit(Releases(CONFIG).Run())
+  sys.exit(Releases().Run())
index 38c644e..b0d1c58 100644 (file)
@@ -34,9 +34,7 @@ import unittest
 
 import auto_push
 from auto_push import CheckLastPush
-from auto_push import SETTINGS_LOCATION
 import auto_roll
-from auto_roll import CLUSTERFUZZ_API_KEY_FILE
 import common_includes
 from common_includes import *
 import merge_to_branch
@@ -44,7 +42,6 @@ from merge_to_branch import *
 import push_to_trunk
 from push_to_trunk import *
 import chromium_roll
-from chromium_roll import CHROMIUM
 from chromium_roll import ChromiumRoll
 import releases
 from releases import Releases
@@ -57,20 +54,19 @@ from auto_tag import AutoTag
 
 TEST_CONFIG = {
   "DEFAULT_CWD": None,
-  BRANCHNAME: "test-prepare-push",
-  TRUNKBRANCH: "test-trunk-push",
-  PERSISTFILE_BASENAME: "/tmp/test-v8-push-to-trunk-tempfile",
-  CHANGELOG_FILE: None,
-  CHANGELOG_ENTRY_FILE: "/tmp/test-v8-push-to-trunk-tempfile-changelog-entry",
-  PATCH_FILE: "/tmp/test-v8-push-to-trunk-tempfile-patch",
-  COMMITMSG_FILE: "/tmp/test-v8-push-to-trunk-tempfile-commitmsg",
-  CHROMIUM: "/tmp/test-v8-push-to-trunk-tempfile-chromium",
-  SETTINGS_LOCATION: None,
-  ALREADY_MERGING_SENTINEL_FILE:
+  "BRANCHNAME": "test-prepare-push",
+  "TRUNKBRANCH": "test-trunk-push",
+  "PERSISTFILE_BASENAME": "/tmp/test-v8-push-to-trunk-tempfile",
+  "CHANGELOG_FILE": None,
+  "CHANGELOG_ENTRY_FILE": "/tmp/test-v8-push-to-trunk-tempfile-changelog-entry",
+  "PATCH_FILE": "/tmp/test-v8-push-to-trunk-tempfile-patch",
+  "COMMITMSG_FILE": "/tmp/test-v8-push-to-trunk-tempfile-commitmsg",
+  "CHROMIUM": "/tmp/test-v8-push-to-trunk-tempfile-chromium",
+  "SETTINGS_LOCATION": None,
+  "ALREADY_MERGING_SENTINEL_FILE":
       "/tmp/test-merge-to-branch-tempfile-already-merging",
-  COMMIT_HASHES_FILE: "/tmp/test-merge-to-branch-tempfile-PATCH_COMMIT_HASHES",
-  TEMPORARY_PATCH_FILE: "/tmp/test-merge-to-branch-tempfile-temporary-patch",
-  CLUSTERFUZZ_API_KEY_FILE: "/tmp/test-fake-cf-api-key",
+  "TEMPORARY_PATCH_FILE": "/tmp/test-merge-to-branch-tempfile-temporary-patch",
+  "CLUSTERFUZZ_API_KEY_FILE": "/tmp/test-fake-cf-api-key",
 }
 
 
@@ -428,8 +424,8 @@ class ScriptTest(unittest.TestCase):
     TEST_CONFIG["DEFAULT_CWD"] = self.MakeEmptyTempDirectory()
 
   def tearDown(self):
-    if os.path.exists(TEST_CONFIG[PERSISTFILE_BASENAME]):
-      shutil.rmtree(TEST_CONFIG[PERSISTFILE_BASENAME])
+    if os.path.exists(TEST_CONFIG["PERSISTFILE_BASENAME"]):
+      shutil.rmtree(TEST_CONFIG["PERSISTFILE_BASENAME"])
 
     # Clean up temps. Doesn't work automatically.
     for name in self._tmp_files:
@@ -451,9 +447,9 @@ class ScriptTest(unittest.TestCase):
       Cmd("git status -s -uno", ""),
       Cmd("git status -s -b -uno", "## some_branch"),
       Cmd("git svn fetch", ""),
-      Cmd("git branch", "  branch1\n* %s" % TEST_CONFIG[BRANCHNAME]),
+      Cmd("git branch", "  branch1\n* %s" % TEST_CONFIG["BRANCHNAME"]),
       RL("Y"),
-      Cmd("git branch -D %s" % TEST_CONFIG[BRANCHNAME], ""),
+      Cmd("git branch -D %s" % TEST_CONFIG["BRANCHNAME"], ""),
     ])
     self.MakeStep().CommonPrepare()
     self.MakeStep().PrepareBranch()
@@ -464,7 +460,7 @@ class ScriptTest(unittest.TestCase):
       Cmd("git status -s -uno", ""),
       Cmd("git status -s -b -uno", "## some_branch"),
       Cmd("git svn fetch", ""),
-      Cmd("git branch", "  branch1\n* %s" % TEST_CONFIG[BRANCHNAME]),
+      Cmd("git branch", "  branch1\n* %s" % TEST_CONFIG["BRANCHNAME"]),
       RL("n"),
     ])
     self.MakeStep().CommonPrepare()
@@ -476,9 +472,9 @@ class ScriptTest(unittest.TestCase):
       Cmd("git status -s -uno", ""),
       Cmd("git status -s -b -uno", "## some_branch"),
       Cmd("git svn fetch", ""),
-      Cmd("git branch", "  branch1\n* %s" % TEST_CONFIG[BRANCHNAME]),
+      Cmd("git branch", "  branch1\n* %s" % TEST_CONFIG["BRANCHNAME"]),
       RL("Y"),
-      Cmd("git branch -D %s" % TEST_CONFIG[BRANCHNAME], None),
+      Cmd("git branch -D %s" % TEST_CONFIG["BRANCHNAME"], None),
     ])
     self.MakeStep().CommonPrepare()
     self.assertRaises(Exception, self.MakeStep().PrepareBranch)
@@ -533,7 +529,7 @@ class ScriptTest(unittest.TestCase):
 
   def testPrepareChangeLog(self):
     self.WriteFakeVersionFile()
-    TEST_CONFIG[CHANGELOG_ENTRY_FILE] = self.MakeEmptyTempFile()
+    TEST_CONFIG["CHANGELOG_ENTRY_FILE"] = self.MakeEmptyTempFile()
 
     self.Expect([
       Cmd("git log --format=%H 1234..push_hash", "rev1\nrev2\nrev3\nrev4"),
@@ -560,7 +556,7 @@ class ScriptTest(unittest.TestCase):
     self._state["version"] = "3.22.5"
     self.RunStep(PushToTrunk, PrepareChangeLog)
 
-    actual_cl = FileToText(TEST_CONFIG[CHANGELOG_ENTRY_FILE])
+    actual_cl = FileToText(TEST_CONFIG["CHANGELOG_ENTRY_FILE"])
 
     expected_cl = """1999-07-31: Version 3.22.5
 
@@ -591,18 +587,18 @@ class ScriptTest(unittest.TestCase):
     self.assertEquals(expected_cl, actual_cl)
 
   def testEditChangeLog(self):
-    TEST_CONFIG[CHANGELOG_ENTRY_FILE] = self.MakeEmptyTempFile()
-    TextToFile("  New  \n\tLines  \n", TEST_CONFIG[CHANGELOG_ENTRY_FILE])
+    TEST_CONFIG["CHANGELOG_ENTRY_FILE"] = self.MakeEmptyTempFile()
+    TextToFile("  New  \n\tLines  \n", TEST_CONFIG["CHANGELOG_ENTRY_FILE"])
     os.environ["EDITOR"] = "vi"
     self.Expect([
       RL(""),  # Open editor.
-      Cmd("vi %s" % TEST_CONFIG[CHANGELOG_ENTRY_FILE], ""),
+      Cmd("vi %s" % TEST_CONFIG["CHANGELOG_ENTRY_FILE"], ""),
     ])
 
     self.RunStep(PushToTrunk, EditChangeLog)
 
     self.assertEquals("New\n        Lines",
-                      FileToText(TEST_CONFIG[CHANGELOG_ENTRY_FILE]))
+                      FileToText(TEST_CONFIG["CHANGELOG_ENTRY_FILE"]))
 
   # Version on trunk: 3.22.4.0. Version on master (bleeding_edge): 3.22.6.
   # Make sure that the increment is 3.22.7.0.
@@ -627,8 +623,8 @@ class ScriptTest(unittest.TestCase):
     self.assertEquals("0", self._state["new_patch"])
 
   def _TestSquashCommits(self, change_log, expected_msg):
-    TEST_CONFIG[CHANGELOG_ENTRY_FILE] = self.MakeEmptyTempFile()
-    with open(TEST_CONFIG[CHANGELOG_ENTRY_FILE], "w") as f:
+    TEST_CONFIG["CHANGELOG_ENTRY_FILE"] = self.MakeEmptyTempFile()
+    with open(TEST_CONFIG["CHANGELOG_ENTRY_FILE"], "w") as f:
       f.write(change_log)
 
     self.Expect([
@@ -640,9 +636,9 @@ class ScriptTest(unittest.TestCase):
     self._state["date"] = "1999-11-11"
 
     self.RunStep(PushToTrunk, SquashCommits)
-    self.assertEquals(FileToText(TEST_CONFIG[COMMITMSG_FILE]), expected_msg)
+    self.assertEquals(FileToText(TEST_CONFIG["COMMITMSG_FILE"]), expected_msg)
 
-    patch = FileToText(TEST_CONFIG[ PATCH_FILE])
+    patch = FileToText(TEST_CONFIG["PATCH_FILE"])
     self.assertTrue(re.search(r"patch content", patch))
 
   def testSquashCommitsUnformatted(self):
@@ -685,10 +681,10 @@ Performance and stability improvements on all platforms."""
     # file from trunk has build level 4.
     self.WriteFakeVersionFile(build=5)
 
-    TEST_CONFIG[CHANGELOG_ENTRY_FILE] = self.MakeEmptyTempFile()
-    TEST_CONFIG[CHANGELOG_FILE] = self.MakeEmptyTempFile()
+    TEST_CONFIG["CHANGELOG_ENTRY_FILE"] = self.MakeEmptyTempFile()
+    TEST_CONFIG["CHANGELOG_FILE"] = self.MakeEmptyTempFile()
     bleeding_edge_change_log = "2014-03-17: Sentinel\n"
-    TextToFile(bleeding_edge_change_log, TEST_CONFIG[CHANGELOG_FILE])
+    TextToFile(bleeding_edge_change_log, TEST_CONFIG["CHANGELOG_FILE"])
     os.environ["EDITOR"] = "vi"
 
     def ResetChangeLog():
@@ -697,14 +693,14 @@ Performance and stability improvements on all platforms."""
       trunk_change_log = """1999-04-05: Version 3.22.4
 
         Performance and stability improvements on all platforms.\n"""
-      TextToFile(trunk_change_log, TEST_CONFIG[CHANGELOG_FILE])
+      TextToFile(trunk_change_log, TEST_CONFIG["CHANGELOG_FILE"])
 
     def ResetToTrunk():
       ResetChangeLog()
       self.WriteFakeVersionFile()
 
     def CheckSVNCommit():
-      commit = FileToText(TEST_CONFIG[COMMITMSG_FILE])
+      commit = FileToText(TEST_CONFIG["COMMITMSG_FILE"])
       self.assertEquals(
 """Version 3.22.5 (based on bleeding_edge revision r123455)
 
@@ -720,7 +716,7 @@ Performance and stability improvements on all platforms.""", commit)
       self.assertTrue(re.search(r"#define IS_CANDIDATE_VERSION\s+0", version))
 
       # Check that the change log on the trunk branch got correctly modified.
-      change_log = FileToText(TEST_CONFIG[CHANGELOG_FILE])
+      change_log = FileToText(TEST_CONFIG["CHANGELOG_FILE"])
       self.assertEquals(
 """1999-07-31: Version 3.22.5
 
@@ -744,7 +740,7 @@ Performance and stability improvements on all platforms.""", commit)
       Cmd("git svn fetch", ""),
       Cmd("git branch", "  branch1\n* branch2\n"),
       Cmd("git branch", "  branch1\n* branch2\n"),
-      Cmd("git checkout -b %s svn/bleeding_edge" % TEST_CONFIG[BRANCHNAME],
+      Cmd("git checkout -b %s svn/bleeding_edge" % TEST_CONFIG["BRANCHNAME"],
           ""),
       Cmd("git svn find-rev r123455", "push_hash\n"),
       Cmd(("git log -1 --format=%H --grep="
@@ -774,20 +770,21 @@ Performance and stability improvements on all platforms.""", commit)
     if manual:
       expectations.append(RL(""))  # Open editor.
     if not force:
-      expectations.append(Cmd("vi %s" % TEST_CONFIG[CHANGELOG_ENTRY_FILE], ""))
+      expectations.append(
+          Cmd("vi %s" % TEST_CONFIG["CHANGELOG_ENTRY_FILE"], ""))
     expectations += [
       Cmd("git svn fetch", "fetch result\n"),
       Cmd("git checkout -f svn/bleeding_edge", ""),
       Cmd("git diff svn/trunk push_hash", "patch content\n"),
       Cmd("git svn find-rev push_hash", "123455\n"),
-      Cmd("git checkout -b %s svn/trunk" % TEST_CONFIG[TRUNKBRANCH], "",
+      Cmd("git checkout -b %s svn/trunk" % TEST_CONFIG["TRUNKBRANCH"], "",
           cb=ResetToTrunk),
-      Cmd("git apply --index --reject \"%s\"" % TEST_CONFIG[PATCH_FILE], ""),
-      Cmd("git checkout -f svn/trunk -- %s" % TEST_CONFIG[CHANGELOG_FILE], "",
+      Cmd("git apply --index --reject \"%s\"" % TEST_CONFIG["PATCH_FILE"], ""),
+      Cmd("git checkout -f svn/trunk -- %s" % TEST_CONFIG["CHANGELOG_FILE"], "",
           cb=ResetChangeLog),
       Cmd("git checkout -f svn/trunk -- src/version.cc", "",
           cb=self.WriteFakeVersionFile),
-      Cmd("git commit -aF \"%s\"" % TEST_CONFIG[COMMITMSG_FILE], "",
+      Cmd("git commit -aF \"%s\"" % TEST_CONFIG["COMMITMSG_FILE"], "",
           cb=CheckSVNCommit),
     ]
     if manual:
@@ -797,8 +794,8 @@ Performance and stability improvements on all platforms.""", commit)
           "Some output\nCommitted r123456\nSome output\n"),
       Cmd("git svn tag 3.22.5 -m \"Tagging version 3.22.5\"", ""),
       Cmd("git checkout -f some_branch", ""),
-      Cmd("git branch -D %s" % TEST_CONFIG[BRANCHNAME], ""),
-      Cmd("git branch -D %s" % TEST_CONFIG[TRUNKBRANCH], ""),
+      Cmd("git branch -D %s" % TEST_CONFIG["BRANCHNAME"], ""),
+      Cmd("git branch -D %s" % TEST_CONFIG["TRUNKBRANCH"], ""),
     ]
     self.Expect(expectations)
 
@@ -808,7 +805,7 @@ Performance and stability improvements on all platforms.""", commit)
     else: args += ["-r", "reviewer@chromium.org"]
     PushToTrunk(TEST_CONFIG, self).Run(args)
 
-    cl = FileToText(TEST_CONFIG[CHANGELOG_FILE])
+    cl = FileToText(TEST_CONFIG["CHANGELOG_FILE"])
     self.assertTrue(re.search(r"^\d\d\d\d\-\d+\-\d+: Version 3\.22\.5", cl))
     self.assertTrue(re.search(r"        Log text 1 \(issue 321\).", cl))
     self.assertTrue(re.search(r"1999\-04\-05: Version 3\.22\.4", cl))
@@ -845,7 +842,7 @@ git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@123456 123
 """
 
   def testChromiumRoll(self):
-    googlers_mapping_py = "%s-mapping.py" % TEST_CONFIG[PERSISTFILE_BASENAME]
+    googlers_mapping_py = "%s-mapping.py" % TEST_CONFIG["PERSISTFILE_BASENAME"]
     with open(googlers_mapping_py, "w") as f:
       f.write("""
 def list_to_dict(entries):
@@ -854,9 +851,9 @@ def get_list():
   pass""")
 
     # Setup fake directory structures.
-    TEST_CONFIG[CHROMIUM] = self.MakeEmptyTempDirectory()
-    TextToFile("", os.path.join(TEST_CONFIG[CHROMIUM], ".git"))
-    chrome_dir = TEST_CONFIG[CHROMIUM]
+    TEST_CONFIG["CHROMIUM"] = self.MakeEmptyTempDirectory()
+    TextToFile("", os.path.join(TEST_CONFIG["CHROMIUM"], ".git"))
+    chrome_dir = TEST_CONFIG["CHROMIUM"]
     os.makedirs(os.path.join(chrome_dir, "v8"))
 
     # Write fake deps file.
@@ -919,7 +916,7 @@ def get_list():
 
   def testAutoPush(self):
     TextToFile("", os.path.join(TEST_CONFIG["DEFAULT_CWD"], ".git"))
-    TEST_CONFIG[SETTINGS_LOCATION] = "~/.doesnotexist"
+    TEST_CONFIG["SETTINGS_LOCATION"] = "~/.doesnotexist"
 
     self.Expect([
       Cmd("git status -s -uno", ""),
@@ -939,14 +936,15 @@ def get_list():
     auto_push.AutoPush(TEST_CONFIG, self).Run(AUTO_PUSH_ARGS + ["--push"])
 
     state = json.loads(FileToText("%s-state.json"
-                                  % TEST_CONFIG[PERSISTFILE_BASENAME]))
+                                  % TEST_CONFIG["PERSISTFILE_BASENAME"]))
 
     self.assertEquals("100", state["lkgr"])
 
   def testAutoPushStoppedBySettings(self):
     TextToFile("", os.path.join(TEST_CONFIG["DEFAULT_CWD"], ".git"))
-    TEST_CONFIG[SETTINGS_LOCATION] = self.MakeEmptyTempFile()
-    TextToFile("{\"enable_auto_push\": false}", TEST_CONFIG[SETTINGS_LOCATION])
+    TEST_CONFIG["SETTINGS_LOCATION"] = self.MakeEmptyTempFile()
+    TextToFile("{\"enable_auto_push\": false}",
+               TEST_CONFIG["SETTINGS_LOCATION"])
 
     self.Expect([
       Cmd("git status -s -uno", ""),
@@ -960,7 +958,7 @@ def get_list():
 
   def testAutoPushStoppedByTreeStatus(self):
     TextToFile("", os.path.join(TEST_CONFIG["DEFAULT_CWD"], ".git"))
-    TEST_CONFIG[SETTINGS_LOCATION] = "~/.doesnotexist"
+    TEST_CONFIG["SETTINGS_LOCATION"] = "~/.doesnotexist"
 
     self.Expect([
       Cmd("git status -s -uno", ""),
@@ -983,7 +981,7 @@ def get_list():
     ])
 
     result = auto_roll.AutoRoll(TEST_CONFIG, self).Run(
-        AUTO_PUSH_ARGS + ["-c", TEST_CONFIG[CHROMIUM]])
+        AUTO_PUSH_ARGS + ["-c", TEST_CONFIG["CHROMIUM"]])
     self.assertEquals(0, result)
 
   # Snippet from the original DEPS file.
@@ -999,8 +997,8 @@ deps = {
 """
 
   def testAutoRollUpToDate(self):
-    TEST_CONFIG[CHROMIUM] = self.MakeEmptyTempDirectory()
-    TextToFile(self.FAKE_DEPS, os.path.join(TEST_CONFIG[CHROMIUM], "DEPS"))
+    TEST_CONFIG["CHROMIUM"] = self.MakeEmptyTempDirectory()
+    TextToFile(self.FAKE_DEPS, os.path.join(TEST_CONFIG["CHROMIUM"], "DEPS"))
     self.Expect([
       URL("https://codereview.chromium.org/search",
           "owner=author%40chromium.org&limit=30&closed=3&format=json",
@@ -1013,14 +1011,14 @@ deps = {
     ])
 
     result = auto_roll.AutoRoll(TEST_CONFIG, self).Run(
-        AUTO_PUSH_ARGS + ["-c", TEST_CONFIG[CHROMIUM]])
+        AUTO_PUSH_ARGS + ["-c", TEST_CONFIG["CHROMIUM"]])
     self.assertEquals(0, result)
 
   def testAutoRoll(self):
-    TEST_CONFIG[CHROMIUM] = self.MakeEmptyTempDirectory()
-    TextToFile(self.FAKE_DEPS, os.path.join(TEST_CONFIG[CHROMIUM], "DEPS"))
-    TEST_CONFIG[CLUSTERFUZZ_API_KEY_FILE]  = self.MakeEmptyTempFile()
-    TextToFile("fake key", TEST_CONFIG[CLUSTERFUZZ_API_KEY_FILE])
+    TEST_CONFIG["CHROMIUM"] = self.MakeEmptyTempDirectory()
+    TextToFile(self.FAKE_DEPS, os.path.join(TEST_CONFIG["CHROMIUM"], "DEPS"))
+    TEST_CONFIG["CLUSTERFUZZ_API_KEY_FILE"]  = self.MakeEmptyTempFile()
+    TextToFile("fake key", TEST_CONFIG["CLUSTERFUZZ_API_KEY_FILE"])
 
     self.Expect([
       URL("https://codereview.chromium.org/search",
@@ -1034,11 +1032,11 @@ deps = {
     ])
 
     result = auto_roll.AutoRoll(TEST_CONFIG, self).Run(
-        AUTO_PUSH_ARGS + ["-c", TEST_CONFIG[CHROMIUM], "--roll"])
+        AUTO_PUSH_ARGS + ["-c", TEST_CONFIG["CHROMIUM"], "--roll"])
     self.assertEquals(0, result)
 
   def testMergeToBranch(self):
-    TEST_CONFIG[ALREADY_MERGING_SENTINEL_FILE] = self.MakeEmptyTempFile()
+    TEST_CONFIG["ALREADY_MERGING_SENTINEL_FILE"] = self.MakeEmptyTempFile()
     TextToFile("", os.path.join(TEST_CONFIG["DEFAULT_CWD"], ".git"))
     self.WriteFakeVersionFile(build=5)
     os.environ["EDITOR"] = "vi"
@@ -1046,7 +1044,7 @@ deps = {
 
     def VerifyPatch(patch):
       return lambda: self.assertEquals(patch,
-          FileToText(TEST_CONFIG[TEMPORARY_PATCH_FILE]))
+          FileToText(TEST_CONFIG["TEMPORARY_PATCH_FILE"]))
 
     msg = """Version 3.22.5.1 (merged r12345, r23456, r34567, r45678, r56789)
 
@@ -1065,7 +1063,7 @@ LOG=N
 """
 
     def VerifySVNCommit():
-      commit = FileToText(TEST_CONFIG[COMMITMSG_FILE])
+      commit = FileToText(TEST_CONFIG["COMMITMSG_FILE"])
       self.assertEquals(msg, commit)
       version = FileToText(
           os.path.join(TEST_CONFIG["DEFAULT_CWD"], VERSION_FILE))
@@ -1079,7 +1077,7 @@ LOG=N
       Cmd("git status -s -b -uno", "## some_branch\n"),
       Cmd("git svn fetch", ""),
       Cmd("git branch", "  branch1\n* branch2\n"),
-      Cmd("git checkout -b %s svn/trunk" % TEST_CONFIG[BRANCHNAME], ""),
+      Cmd("git checkout -b %s svn/trunk" % TEST_CONFIG["BRANCHNAME"], ""),
       Cmd(("git log --format=%H --grep=\"Port r12345\" "
            "--reverse svn/bleeding_edge"),
           "hash1\nhash2"),
@@ -1117,31 +1115,31 @@ LOG=N
       Cmd("git log -1 hash5", "Revert \"Something\"\nBUG=none"),
       Cmd("git log -1 -p hash4", "patch4"),
       Cmd(("git apply --index --reject \"%s\"" %
-           TEST_CONFIG[TEMPORARY_PATCH_FILE]),
+           TEST_CONFIG["TEMPORARY_PATCH_FILE"]),
           "", cb=VerifyPatch("patch4")),
       Cmd("git log -1 -p hash2", "patch2"),
       Cmd(("git apply --index --reject \"%s\"" %
-           TEST_CONFIG[TEMPORARY_PATCH_FILE]),
+           TEST_CONFIG["TEMPORARY_PATCH_FILE"]),
           "", cb=VerifyPatch("patch2")),
       Cmd("git log -1 -p hash3", "patch3"),
       Cmd(("git apply --index --reject \"%s\"" %
-           TEST_CONFIG[TEMPORARY_PATCH_FILE]),
+           TEST_CONFIG["TEMPORARY_PATCH_FILE"]),
           "", cb=VerifyPatch("patch3")),
       Cmd("git log -1 -p hash1", "patch1"),
       Cmd(("git apply --index --reject \"%s\"" %
-           TEST_CONFIG[TEMPORARY_PATCH_FILE]),
+           TEST_CONFIG["TEMPORARY_PATCH_FILE"]),
           "", cb=VerifyPatch("patch1")),
       Cmd("git log -1 -p hash5", "patch5\n"),
       Cmd(("git apply --index --reject \"%s\"" %
-           TEST_CONFIG[TEMPORARY_PATCH_FILE]),
+           TEST_CONFIG["TEMPORARY_PATCH_FILE"]),
           "", cb=VerifyPatch("patch5\n")),
       Cmd("git apply --index --reject \"%s\"" % extra_patch, ""),
       RL("Y"),  # Automatically increment patch level?
-      Cmd("git commit -aF \"%s\"" % TEST_CONFIG[COMMITMSG_FILE], ""),
+      Cmd("git commit -aF \"%s\"" % TEST_CONFIG["COMMITMSG_FILE"], ""),
       RL("reviewer@chromium.org"),  # V8 reviewer.
       Cmd("git cl upload --send-mail -r \"reviewer@chromium.org\" "
           "--bypass-hooks", ""),
-      Cmd("git checkout -f %s" % TEST_CONFIG[BRANCHNAME], ""),
+      Cmd("git checkout -f %s" % TEST_CONFIG["BRANCHNAME"], ""),
       RL("LGTM"),  # Enter LGTM for V8 CL.
       Cmd("git cl presubmit", "Presubmit successfull\n"),
       Cmd("git cl dcommit -f --bypass-hooks", "Closing issue\n",
@@ -1154,7 +1152,7 @@ LOG=N
            "https://v8.googlecode.com/svn/tags/3.22.5.1 -m "
            "\"Tagging version 3.22.5.1\""), ""),
       Cmd("git checkout -f some_branch", ""),
-      Cmd("git branch -D %s" % TEST_CONFIG[BRANCHNAME], ""),
+      Cmd("git branch -D %s" % TEST_CONFIG["BRANCHNAME"], ""),
     ])
 
     # r12345 and r34567 are patches. r23456 (included) and r45678 are the MIPS
@@ -1222,8 +1220,8 @@ git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3456 0039-1c4b
     csv_output = self.MakeEmptyTempFile()
     self.WriteFakeVersionFile()
 
-    TEST_CONFIG[CHROMIUM] = self.MakeEmptyTempDirectory()
-    chrome_dir = TEST_CONFIG[CHROMIUM]
+    TEST_CONFIG["CHROMIUM"] = self.MakeEmptyTempDirectory()
+    chrome_dir = TEST_CONFIG["CHROMIUM"]
     chrome_v8_dir = os.path.join(chrome_dir, "v8")
     os.makedirs(chrome_v8_dir)
     def WriteDEPS(revision):
@@ -1244,7 +1242,7 @@ git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3456 0039-1c4b
       Cmd("git status -s -b -uno", "## some_branch\n"),
       Cmd("git svn fetch", ""),
       Cmd("git branch", "  branch1\n* branch2\n"),
-      Cmd("git checkout -b %s" % TEST_CONFIG[BRANCHNAME], ""),
+      Cmd("git checkout -b %s" % TEST_CONFIG["BRANCHNAME"], ""),
       Cmd("git branch -r", "  svn/3.21\n  svn/3.3\n"),
       Cmd("git reset --hard svn/3.3", ""),
       Cmd("git log --format=%H", "hash1\nhash2"),
@@ -1293,7 +1291,7 @@ git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3456 0039-1c4b
       Cmd("git status -s -uno", "", cwd=chrome_dir),
       Cmd("git checkout -f master", "", cwd=chrome_dir),
       Cmd("git pull", "", cwd=chrome_dir),
-      Cmd("git checkout -b %s" % TEST_CONFIG[BRANCHNAME], "", cwd=chrome_dir),
+      Cmd("git checkout -b %s" % TEST_CONFIG["BRANCHNAME"], "", cwd=chrome_dir),
       Cmd("git fetch origin", "", cwd=chrome_v8_dir),
       Cmd("git log --format=%H --grep=\"V8\"", "c_hash1\nc_hash2\nc_hash3\n",
           cwd=chrome_dir),
@@ -1321,12 +1319,12 @@ git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3456 0039-1c4b
       Cmd("git checkout -f HEAD -- DEPS", "", cb=ResetDEPS(567),
           cwd=chrome_dir),
       Cmd("git checkout -f master", "", cwd=chrome_dir),
-      Cmd("git branch -D %s" % TEST_CONFIG[BRANCHNAME], "", cwd=chrome_dir),
+      Cmd("git branch -D %s" % TEST_CONFIG["BRANCHNAME"], "", cwd=chrome_dir),
       Cmd("git checkout -f some_branch", ""),
-      Cmd("git branch -D %s" % TEST_CONFIG[BRANCHNAME], ""),
+      Cmd("git branch -D %s" % TEST_CONFIG["BRANCHNAME"], ""),
     ])
 
-    args = ["-c", TEST_CONFIG[CHROMIUM],
+    args = ["-c", TEST_CONFIG["CHROMIUM"],
             "--json", json_output,
             "--csv", csv_output,
             "--max-releases", "1"]
@@ -1417,17 +1415,18 @@ git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3456 0039-1c4b
     BumpUpVersion(TEST_CONFIG, self).Run(["-a", "author@chromium.org"])
 
   def testBumpUpVersionSvn(self):
+    svn_root = self.MakeEmptyTempDirectory()
     expectations = self._bumpUpVersion()
     expectations += [
       Cmd("git diff HEAD^ HEAD", "patch content"),
-      Cmd("svn update", "", cwd="[SVN_ROOT]"),
-      Cmd("svn status", "", cwd="[SVN_ROOT]"),
+      Cmd("svn update", "", cwd=svn_root),
+      Cmd("svn status", "", cwd=svn_root),
       Cmd("patch -d branches/bleeding_edge -p1 -i %s" %
-          TEST_CONFIG[PATCH_FILE], "Applied patch...", cwd="[SVN_ROOT]"),
+          TEST_CONFIG["PATCH_FILE"], "Applied patch...", cwd=svn_root),
       Cmd("svn commit --non-interactive --username=author@chromium.org "
           "--config-dir=[CONFIG_DIR] "
           "-m \"[Auto-roll] Bump up version to 3.11.6.0\"",
-          "", cwd="[SVN_ROOT]"),
+          "", cwd=svn_root),
       Cmd("git checkout -f bleeding_edge", ""),
       Cmd("git branch", "auto-bump-up-version\n* bleeding_edge"),
       Cmd("git branch -D auto-bump-up-version", ""),
@@ -1436,7 +1435,7 @@ git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3456 0039-1c4b
 
     BumpUpVersion(TEST_CONFIG, self).Run(
         ["-a", "author@chromium.org",
-         "--svn", "[SVN_ROOT]",
+         "--svn", svn_root,
          "--svn-config", "[CONFIG_DIR]"])
 
   def testAutoTag(self):
@@ -1454,7 +1453,7 @@ git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3456 0039-1c4b
       Cmd("git branch", "  branch1\n* branch2\n"),
       Cmd("git checkout -f master", ""),
       Cmd("git svn rebase", ""),
-      Cmd("git checkout -b %s" % TEST_CONFIG[BRANCHNAME], "",
+      Cmd("git checkout -b %s" % TEST_CONFIG["BRANCHNAME"], "",
           cb=ResetVersion(4, 5)),
       Cmd("git branch -r",
           "svn/tags/3.4.2\nsvn/tags/3.2.1.0\nsvn/branches/3.4"),
@@ -1484,7 +1483,7 @@ git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3456 0039-1c4b
       Cmd("git reset --hard hash123", ""),
       Cmd("git svn tag 3.4.3 -m \"Tagging version 3.4.3\"", ""),
       Cmd("git checkout -f some_branch", ""),
-      Cmd("git branch -D %s" % TEST_CONFIG[BRANCHNAME], ""),
+      Cmd("git branch -D %s" % TEST_CONFIG["BRANCHNAME"], ""),
     ])
 
     AutoTag(TEST_CONFIG, self).Run(["-a", "author@chromium.org"])