style fixes for autotest_quickmerge

This CL addresses style comments from 3 previous CLs to
autotest_quickmerge, as well as fixing one hard-coded error number
value.

BUG=None
TEST=unit test; manual test of basic autotest_quickmerge behavior

Change-Id: I8c8af18aab940bd13c45e1a2e5b3aaa7618ca5a1
Reviewed-on: https://gerrit.chromium.org/gerrit/49093
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
diff --git a/scripts/autotest_quickmerge.py b/scripts/autotest_quickmerge.py
old mode 100755
new mode 100644
index f0656c3..cff38a8
--- a/scripts/autotest_quickmerge.py
+++ b/scripts/autotest_quickmerge.py
@@ -10,6 +10,8 @@
 emerge-$board autotest-all, by simply rsync'ing changes from trunk to sysroot.
 """
 
+import argparse
+import errno
 import logging
 import os
 import re
@@ -21,7 +23,6 @@
 from chromite.lib import cros_build_lib
 from chromite.lib import git
 
-import argparse
 
 if cros_build_lib.IsInsideChroot():
   # Only import portage after we've checked that we're inside the chroot.
@@ -58,8 +59,7 @@
 
 
 def GetStalePackageNames(change_list, autotest_sysroot):
-  """
-  Given a rsync change report, returns the names of stale test packages.
+  """Given a rsync change report, returns the names of stale test packages.
 
   This function pulls out test package names for client-side tests, stored
   within the client/site_tests directory tree, that had any files added or
@@ -116,8 +116,7 @@
 
 
 def GetPackageAPI(portage_root, package_cp):
-  """
-  Gets portage API handles for the given package.
+  """Gets portage API handles for the given package.
 
   Arguments:
     portage_root: Root directory of portage tree. Eg '/' or '/build/lumpy'
@@ -129,29 +128,31 @@
       vartree is of type portage.dbapi.vartree.vartree
   """
   if portage_root is None:
-    portage_root = portage.root # pylint: disable-msg=E1101
+    # pylint: disable-msg=E1101
+    portage_root = portage.root
   # Ensure that portage_root ends with trailing slash.
   portage_root = os.path.join(portage_root, '')
 
-  # Create vartree object corresponding to portage_root
+  # Create a vartree object corresponding to portage_root.
   trees = portage.create_trees(portage_root, portage_root)
   vartree = trees[portage_root]['vartree']
 
-  # List matching installed packages in cpv format
+  # List the matching installed packages in cpv format.
   matching_packages = vartree.dbapi.cp_list(package_cp)
 
   if not matching_packages:
     raise ValueError('No matching package for %s in portage_root %s' % (
-        package_cp, portage_root))
+                     package_cp, portage_root))
 
   if len(matching_packages) > 1:
     raise ValueError('Too many matching packages for %s in portage_root '
-        '%s' % (package_cp, portage_root))
+                     '%s' % (package_cp, portage_root))
 
-  # Convert string match to package dblink
+  # Convert string match to package dblink.
   package_cpv = matching_packages[0]
   package_split = portage_utilities.SplitCPV(package_cpv)
-  package = portage.dblink(package_split.category, # pylint: disable-msg=E1101
+  # pylint: disable-msg=E1101
+  package = portage.dblink(package_split.category,
                            package_split.pv, settings=vartree.settings,
                            vartree=vartree)
 
@@ -160,8 +161,7 @@
 
 def DowngradePackageVersion(portage_root, package_cp,
                             downgrade_to_version='0'):
-  """
-  Downgrade the specified portage package version.
+  """Downgrade the specified portage package version.
 
   Arguments:
     portage_root: Root directory of portage tree. Eg '/' or '/build/lumpy'
@@ -182,10 +182,8 @@
   return cros_build_lib.SudoRunCommand(command).returncode
 
 
-def UpdatePackageContents(change_report, package_cp,
-                          portage_root=None):
-  """
-  Add newly created files/directors to package contents.
+def UpdatePackageContents(change_report, package_cp, portage_root=None):
+  """Add newly created files/directors to package contents.
 
   Given an ItemizedChangeReport, add the newly created files and directories
   to the CONTENTS of an installed portage package, such that these files are
@@ -201,22 +199,20 @@
   """
   package, vartree = GetPackageAPI(portage_root, package_cp)
 
-  # Append new contents to package contents dictionary
+  # Append new contents to package contents dictionary.
   contents = package.getcontents().copy()
   for _, filename in change_report.new_files:
     contents.setdefault(filename, (u'obj', '0', '0'))
   for _, dirname in change_report.new_directories:
-    # String trailing slashes if present.
-    dirname = dirname.rstrip('/')
-    contents.setdefault(dirname, (u'dir',))
+    # Strip trailing slashes if present.
+    contents.setdefault(dirname.rstrip('/'), (u'dir',))
 
-  # Write new contents dictionary to file
+  # Write new contents dictionary to file.
   vartree.dbapi.writeContentsToContentsFile(package, contents)
 
 
 def RemoveTestPackages(stale_packages, autotest_sysroot):
-  """
-  Remove bzipped test packages from sysroot.
+  """Remove bzipped test packages from sysroot.
 
   Arguments:
     stale_packages: List of test packages names to be removed.
@@ -227,13 +223,13 @@
   for package in set(stale_packages):
     package_filename = 'test-' + package + '.tar.bz2'
     package_file_fullpath = os.path.join(autotest_sysroot, 'packages',
-        package_filename)
+                                         package_filename)
     try:
       os.remove(package_file_fullpath)
       logging.info('Removed stale %s', package_file_fullpath)
     except OSError as err:
       # Suppress no-such-file exceptions. Raise all others.
-      if err.errno != 2:
+      if err.errno != errno.ENOENT:
         raise
 
 
@@ -241,6 +237,7 @@
                     include_pattern_file=None, pretend=False,
                     overwrite=False):
   """Run rsync quickmerge command, with specified arguments.
+
   Command will take form `rsync -a [options] --exclude=**.pyc
                          --exclude=**.pyo
                          [optional --include-from argument]
@@ -303,7 +300,7 @@
 
   args = ParseArguments(argv)
 
-  if not os.geteuid()==0:
+  if os.geteuid() != 0:
     try:
       cros_build_lib.SudoRunCommand([sys.executable] + sys.argv)
     except cros_build_lib.RunCommandError:
@@ -327,7 +324,8 @@
                                        'autotest', '')
 
   rsync_output = RsyncQuickmerge(source_path, sysroot_autotest_path,
-      include_pattern_file, args.pretend, args.overwrite)
+                                 include_pattern_file, args.pretend,
+                                 args.overwrite)
 
   if args.verbose:
     logging.info(rsync_output.output)
@@ -341,7 +339,7 @@
     for ebuild in DOWNGRADE_EBUILDS:
       if DowngradePackageVersion(sysroot_path, ebuild) != 0:
         logging.warning('Unable to downgrade package %s version number.',
-            ebuild)
+                        ebuild)
     stale_packages = GetStalePackageNames(
         change_report.new_files + change_report.modified_files,
         sysroot_autotest_path)
@@ -349,12 +347,9 @@
 
   if args.pretend:
     logging.info('The following message is pretend only. No filesystem '
-        'changes made.')
+                 'changes made.')
   logging.info('Quickmerge complete. Created or modified %s files.',
-      len(change_report.new_files) + len(change_report.modified_files))
+               len(change_report.new_files) +
+               len(change_report.modified_files))
 
   return 0
-
-
-if __name__ == '__main__':
-  sys.exit(main(sys.argv))