pre-upload: Exclude OWNERS files from license checks.

BUG=None
TEST=pre-upload_unittest.py passes

Change-Id: I37f53cce53bae365963b8a33c3081a4d9748bddd
Reviewed-on: https://chromium-review.googlesource.com/908177
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Ken Turner <kennetht@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
diff --git a/pre-upload.py b/pre-upload.py
index 3608d45..74cdda4 100755
--- a/pre-upload.py
+++ b/pre-upload.py
@@ -78,6 +78,9 @@
     r".*/licenses/.*",
 ]
 
+LICENSE_EXCLUDED_PATHS = [
+    r".*/OWNERS$",
+]
 
 _CONFIG_FILE = 'PRESUBMIT.cfg'
 
@@ -1045,9 +1048,10 @@
 
   bad_files = []
   bad_copyright_files = []
-  files = _filter_files(_get_affected_files(commit, relative=True),
-                        included + COMMON_INCLUDED_PATHS,
-                        excluded + COMMON_EXCLUDED_PATHS)
+  files = _filter_files(
+      _get_affected_files(commit, relative=True),
+      included + COMMON_INCLUDED_PATHS,
+      excluded + COMMON_EXCLUDED_PATHS + LICENSE_EXCLUDED_PATHS)
 
   for f in files:
     contents = _get_file_content(f, commit)
@@ -1100,9 +1104,10 @@
 
   included, excluded = _parse_common_inclusion_options(options)
 
-  files = _filter_files(_get_affected_files(commit, relative=True),
-                        included + COMMON_INCLUDED_PATHS,
-                        excluded + COMMON_EXCLUDED_PATHS)
+  files = _filter_files(
+      _get_affected_files(commit, relative=True),
+      included + COMMON_INCLUDED_PATHS,
+      excluded + COMMON_EXCLUDED_PATHS + LICENSE_EXCLUDED_PATHS)
 
   bad_files = []
   for f in files:
diff --git a/pre-upload_unittest.py b/pre-upload_unittest.py
index b436771..e38fb96 100755
--- a/pre-upload_unittest.py
+++ b/pre-upload_unittest.py
@@ -675,6 +675,12 @@
       self.content_mock.return_value = header
       self.assertNotEqual(None, pre_upload._check_cros_license('proj', 'sha1'))
 
+  def testIgnoreExcludedPaths(self):
+    """Ignores excluded paths for license checks."""
+    self.file_mock.return_value = ['foo/OWNERS']
+    self.content_mock.return_value = ('owner@chromium.org')
+    self.assertEqual(None, pre_upload._check_cros_license('proj', 'sha1'))
+
 
 class CheckAOSPLicenseCopyrightHeader(cros_test_lib.MockTestCase):
   """Tests for _check_aosp_license."""
@@ -747,6 +753,12 @@
       self.content_mock.return_value = header
       self.assertNotEqual(None, pre_upload._check_aosp_license('proj', 'sha1'))
 
+  def testIgnoreExcludedPaths(self):
+    """Ignores excluded paths for license checks."""
+    self.file_mock.return_value = ['foo/OWNERS']
+    self.content_mock.return_value = ('owner@chromium.org')
+    self.assertEqual(None, pre_upload._check_aosp_license('proj', 'sha1'))
+
 
 class CheckLayoutConfTestCase(cros_test_lib.MockTestCase):
   """Tests for _check_layout_conf."""