Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1889)

Unified Diff: android_webview/tools/webview_licenses.py

Issue 667723002: [Android WebView] Prepare the copyrights scanner to run from presubmit scripts (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Simplified ShouldMatchReferenceOutput Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « android_webview/tools/third_party_files_whitelist.txt ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: android_webview/tools/webview_licenses.py
diff --git a/android_webview/tools/webview_licenses.py b/android_webview/tools/webview_licenses.py
index 8d0963077982207589c088d89fc416751290a66e..3b4e00623e5cc9eec19f663de7238c04a5c39113 100755
--- a/android_webview/tools/webview_licenses.py
+++ b/android_webview/tools/webview_licenses.py
@@ -44,7 +44,10 @@ import known_issues
class InputApi(object):
def __init__(self):
+ self.os_path = os.path
+ self.os_walk = os.walk
self.re = re
+ self.ReadFile = _ReadFile
def GetIncompatibleDirectories():
"""Gets a list of third-party directories which use licenses incompatible
@@ -99,7 +102,7 @@ class ScanResult(object):
# Needs to be a top-level function for multiprocessing
def _FindCopyrightViolations(files_to_scan_as_string):
return copyright_scanner.FindCopyrightViolations(
- REPOSITORY_ROOT, files_to_scan_as_string)
+ InputApi(), REPOSITORY_ROOT, files_to_scan_as_string)
def _ShardList(l, shard_len):
return [l[i:i + shard_len] for i in range(0, len(l), shard_len)]
@@ -157,7 +160,7 @@ def _CheckLicenseHeaders(excluded_dirs_list, whitelisted_files):
excluded_dirs_list.append('skia/tools/clusterfuzz-data')
files_to_scan = copyright_scanner.FindFiles(
- REPOSITORY_ROOT, ['.'], excluded_dirs_list)
+ InputApi(), REPOSITORY_ROOT, ['.'], excluded_dirs_list)
sharded_files_to_scan = _ShardList(files_to_scan, 2000)
pool = multiprocessing.Pool()
offending_files_chunks = pool.map_async(
@@ -193,7 +196,19 @@ def _CheckLicenseHeaders(excluded_dirs_list, whitelisted_files):
return ScanResult.Ok
-def _ReadFile(path):
+def _ReadFile(full_path, mode='rU'):
+ """Reads a file from disk. This emulates presubmit InputApi.ReadFile func.
+ Args:
+ full_path: The path of the file to read.
+ Returns:
+ The contents of the file as a string.
+ """
+
+ with open(full_path, mode) as f:
+ return f.read()
+
+
+def _ReadLocalFile(path, mode='rb'):
"""Reads a file from disk.
Args:
path: The path of the file to read, relative to the root of the repository.
@@ -201,8 +216,7 @@ def _ReadFile(path):
The contents of the file as a string.
"""
- with open(os.path.join(REPOSITORY_ROOT, path), 'rb') as f:
- return f.read()
+ return _ReadFile(os.path.join(REPOSITORY_ROOT, path), mode)
def _FindThirdPartyDirs():
@@ -262,8 +276,8 @@ def _Scan():
all_licenses_valid = False
# Second, check for non-standard license text.
- files_data = _ReadFile(os.path.join('android_webview', 'tools',
- 'third_party_files_whitelist.txt'))
+ files_data = _ReadLocalFile(os.path.join('android_webview', 'tools',
+ 'third_party_files_whitelist.txt'))
whitelisted_files = []
for line in files_data.splitlines():
match = re.match(r'([^#\s]+)', line)
@@ -284,7 +298,7 @@ def GenerateNoticeFile():
third_party_dirs = _FindThirdPartyDirs()
# Don't forget Chromium's LICENSE file
- content = [_ReadFile('LICENSE')]
+ content = [_ReadLocalFile('LICENSE')]
# We provide attribution for all third-party directories.
# TODO(steveblock): Limit this to only code used by the WebView binary.
@@ -293,7 +307,7 @@ def GenerateNoticeFile():
require_license_file=False)
license_file = metadata['License File']
if license_file and license_file != licenses.NOT_SHIPPED:
- content.append(_ReadFile(license_file))
+ content.append(_ReadLocalFile(license_file))
return '\n'.join(content)
@@ -344,7 +358,8 @@ def main():
return _ProcessIncompatibleResult(GetIncompatibleDirectories())
elif args[0] == 'display_copyrights':
files = sys.stdin.read().splitlines()
- for f, c in zip(files, copyright_scanner.FindCopyrights('.', files)):
+ for f, c in \
+ zip(files, copyright_scanner.FindCopyrights(InputApi(), '.', files)):
print f, '\t', ' / '.join(sorted(c))
return ScanResult.Ok
parser.print_help()
« no previous file with comments | « android_webview/tools/third_party_files_whitelist.txt ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698