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

Side by Side Diff: presubmit_canned_checks.py

Issue 12546003: Fix a crash in the owners check for a change without reviewers. (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: fix _RietveldOwnerAndReviewers to never return None Created 7 years, 9 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """Generic presubmit checks that can be reused by other presubmit checks.""" 5 """Generic presubmit checks that can be reused by other presubmit checks."""
6 6
7 import os as _os 7 import os as _os
8 _HERE = _os.path.dirname(_os.path.abspath(__file__)) 8 _HERE = _os.path.dirname(_os.path.abspath(__file__))
9 9
10 10
(...skipping 778 matching lines...) Expand 10 before | Expand all | Expand 10 after
789 789
790 owners_db = input_api.owners_db 790 owners_db = input_api.owners_db
791 owner_email, reviewers = _RietveldOwnerAndReviewers( 791 owner_email, reviewers = _RietveldOwnerAndReviewers(
792 input_api, 792 input_api,
793 owners_db.email_regexp, 793 owners_db.email_regexp,
794 approval_needed=input_api.is_committing) 794 approval_needed=input_api.is_committing)
795 795
796 owner_email = owner_email or input_api.change.author_email 796 owner_email = owner_email or input_api.change.author_email
797 797
798 if author_counts_as_owner and owner_email: 798 if author_counts_as_owner and owner_email:
799 reviewers_plus_owner = set([owner_email]).union(reviewers or set()) 799 reviewers_plus_owner = set([owner_email]).union(reviewers)
800 missing_files = owners_db.files_not_covered_by(affected_files, 800 missing_files = owners_db.files_not_covered_by(affected_files,
801 reviewers_plus_owner) 801 reviewers_plus_owner)
802 else: 802 else:
803 missing_files = owners_db.files_not_covered_by(affected_files, reviewers) 803 missing_files = owners_db.files_not_covered_by(affected_files, reviewers)
804 804
805 if missing_files: 805 if missing_files:
806 output_list = [ 806 output_list = [
807 output('Missing %s for these files:\n %s' % 807 output('Missing %s for these files:\n %s' %
808 (needed, '\n '.join(missing_files)))] 808 (needed, '\n '.join(missing_files)))]
809 if not input_api.is_committing: 809 if not input_api.is_committing:
(...skipping 16 matching lines...) Expand all
826 826
827 827
828 def _RietveldOwnerAndReviewers(input_api, email_regexp, approval_needed=False): 828 def _RietveldOwnerAndReviewers(input_api, email_regexp, approval_needed=False):
829 """Return the owner and reviewers of a change, if any. 829 """Return the owner and reviewers of a change, if any.
830 830
831 If approval_needed is True, only reviewers who have approved the change 831 If approval_needed is True, only reviewers who have approved the change
832 will be returned. 832 will be returned.
833 """ 833 """
834 issue_props = _GetRietveldIssueProps(input_api, True) 834 issue_props = _GetRietveldIssueProps(input_api, True)
835 if not issue_props: 835 if not issue_props:
836 return None, None 836 return None, set()
837 837
838 if not approval_needed: 838 if not approval_needed:
839 return issue_props['owner_email'], set(issue_props['reviewers']) 839 return issue_props['owner_email'], set(issue_props['reviewers'])
840 840
841 owner_email = issue_props['owner_email'] 841 owner_email = issue_props['owner_email']
842 842
843 def match_reviewer(r): 843 def match_reviewer(r):
844 return email_regexp.match(r) and r != owner_email 844 return email_regexp.match(r) and r != owner_email
845 845
846 messages = issue_props.get('messages', []) 846 messages = issue_props.get('messages', [])
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
1007 snapshot("checking description") 1007 snapshot("checking description")
1008 results.extend(input_api.canned_checks.CheckChangeHasDescription( 1008 results.extend(input_api.canned_checks.CheckChangeHasDescription(
1009 input_api, output_api)) 1009 input_api, output_api))
1010 results.extend(input_api.canned_checks.CheckDoNotSubmitInDescription( 1010 results.extend(input_api.canned_checks.CheckDoNotSubmitInDescription(
1011 input_api, output_api)) 1011 input_api, output_api))
1012 snapshot("checking do not submit in files") 1012 snapshot("checking do not submit in files")
1013 results.extend(input_api.canned_checks.CheckDoNotSubmitInFiles( 1013 results.extend(input_api.canned_checks.CheckDoNotSubmitInFiles(
1014 input_api, output_api)) 1014 input_api, output_api))
1015 snapshot("done") 1015 snapshot("done")
1016 return results 1016 return results
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698