Enforce coherent type handling in git_cl.py

Issue and patchset can only be int, so store them as ints.
This fixes git cl comment, which was broken by r152756.

R=petermayo@chromium.org
BUG=


Review URL: https://chromiumcodereview.appspot.com/10894019

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@153885 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/git_cl.py b/git_cl.py
index 452858a..e250c8e 100755
--- a/git_cl.py
+++ b/git_cl.py
@@ -436,10 +436,11 @@
     return RunGit(['config', 'remote.%s.url' % remote], error_ok=True).strip()
 
   def GetIssue(self):
+    """Returns the issue number as a int or None if not set."""
     if not self.has_issue:
       issue = RunGit(['config', self._IssueSetting()], error_ok=True).strip()
       if issue:
-        self.issue = issue
+        self.issue = int(issue)
       else:
         self.issue = None
       self.has_issue = True
@@ -463,7 +464,7 @@
   def GetDescription(self, pretty=False):
     if not self.has_description:
       if self.GetIssue():
-        issue = int(self.GetIssue())
+        issue = self.GetIssue()
         try:
           self.description = self.RpcServer().get_description(issue).strip()
         except urllib2.HTTPError, e:
@@ -488,11 +489,12 @@
     return self.description
 
   def GetPatchset(self):
+    """Returns the patchset number as a int or None if not set."""
     if not self.has_patchset:
       patchset = RunGit(['config', self._PatchsetSetting()],
                         error_ok=True).strip()
       if patchset:
-        self.patchset = patchset
+        self.patchset = int(patchset)
       else:
         self.patchset = None
       self.has_patchset = True
@@ -542,8 +544,8 @@
            'replacing trunk with origin/master or the relevant branch') %
           (upstream_branch, self.GetBranch()))
 
-    issue = ConvertToInteger(self.GetIssue())
-    patchset = ConvertToInteger(self.GetPatchset())
+    issue = self.GetIssue()
+    patchset = self.GetPatchset()
     if issue:
       description = self.GetDescription()
     else:
@@ -586,7 +588,7 @@
 
   def CloseIssue(self):
     """Updates the description and closes the issue."""
-    issue = int(self.GetIssue())
+    issue = self.GetIssue()
     self.RpcServer().update_description(issue, self.description)
     return self.RpcServer().close_issue(issue)
 
@@ -596,7 +598,7 @@
       DieWithError('The patchset needs to match. Send another patchset.')
     try:
       return self.RpcServer().set_flag(
-          int(self.GetIssue()), int(self.GetPatchset()), flag, value)
+          self.GetIssue(), self.GetPatchset(), flag, value)
     except urllib2.HTTPError, e:
       if e.code == 404:
         DieWithError('The issue %s doesn\'t exist.' % self.GetIssue())
@@ -864,7 +866,7 @@
       print 'no issue assigned.'
       return 0
     print cl.GetBranch()
-    print 'Issue number:', cl.GetIssue(), '(%s)' % cl.GetIssueURL()
+    print 'Issue number: %s (%s)' % (cl.GetIssue(), cl.GetIssueURL())
     print 'Issue description:'
     print cl.GetDescription(pretty=True)
   return 0
@@ -886,7 +888,7 @@
       DieWithError('Pass a number to set the issue or none to list it.\n'
           'Maybe you want to run git cl status?')
     cl.SetIssue(issue)
-  print 'Issue number:', cl.GetIssue(), '(%s)' % cl.GetIssueURL()
+  print 'Issue number: %s (%s)' % (cl.GetIssue(), cl.GetIssueURL())
   return 0
 
 
@@ -920,14 +922,6 @@
   return RunGit(['log', '--pretty=format:%s\n\n%b'] + log_args)
 
 
-def ConvertToInteger(inputval):
-  """Convert a string to integer, but returns either an int or None."""
-  try:
-    return int(inputval)
-  except (TypeError, ValueError):
-    return None
-
-
 def CMDpresubmit(parser, args):
   """run presubmit tests on the current changelist"""
   parser.add_option('--upload', action='store_true',
@@ -1011,7 +1005,7 @@
       # for upload.py.  Soon this will be changed to set the --message option.
       # Will wait until people are used to typing -t instead of -m.
       upload_args.extend(['--title', options.message])
-    upload_args.extend(['--issue', cl.GetIssue()])
+    upload_args.extend(['--issue', str(cl.GetIssue())])
     print ("This branch is associated with issue %s. "
            "Adding patch to that issue." % cl.GetIssue())
   else:
@@ -1405,9 +1399,9 @@
   # TODO(maruel): Use apply_issue.py
   # TODO(ukai): use gerrit-cherry-pick for gerrit repository?
 
-  if re.match(r'\d+', issue_arg):
+  if issue_arg.isdigit():
     # Input is an issue id.  Figure out the URL.
-    issue = issue_arg
+    issue = int(issue_arg)
     patch_data = Changelist().GetPatchSetDiff(issue)
   else:
     # Assume it's a URL to the patch. Default to https.
@@ -1416,7 +1410,7 @@
     if not match:
       DieWithError('Must pass an issue ID or full URL for '
           '\'Download raw patch set\'')
-    issue = match.group(1)
+    issue = int(match.group(1))
     patch_data = urllib2.urlopen(issue_arg).read()
 
   if options.newbranch: