Changeset 99786 in webkit
- Timestamp:
- Nov 9, 2011, 5:07:12 PM (15 years ago)
- Location:
- trunk/Tools
- Files:
-
- 5 edited
-
ChangeLog (modified) (1 diff)
-
Scripts/webkitpy/common/config/committers.py (modified) (7 diffs)
-
Scripts/webkitpy/common/config/committers_unittest.py (modified) (2 diffs)
-
Scripts/webkitpy/common/config/watchlist (modified) (1 diff)
-
Scripts/webkitpy/common/watchlist/watchlistparser.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/ChangeLog
r99785 r99786 1 2011-11-09 Dana Jansens <danakj@chromium.org> 2 3 Add cc-bugs group to watch changes in chromium graphics 4 https://bugs.webkit.org/show_bug.cgi?id=71690 5 6 Reviewed by David Levin. 7 8 * Scripts/webkitpy/common/config/committers.py: Make new Account superclass for non-contributor watch accounts 9 * Scripts/webkitpy/common/config/committers_unittest.py: Test the Account superclass 10 * Scripts/webkitpy/common/config/watchlist: Add cc-bugs@google.com to watch list 11 * Scripts/webkitpy/common/watchlist/watchlistparser.py: Check for Accounts also, but require it to be the bugzilla email for any Account/Contributor/etc. 12 1 13 2011-11-09 Eric Seidel <eric@webkit.org> 2 14 -
trunk/Tools/Scripts/webkitpy/common/config/committers.py
r99620 r99786 30 30 # WebKit's Python module for committer and reviewer validation. 31 31 32 class Contributor(object): 32 33 class Account(object): 33 34 def __init__(self, name, email_or_emails, irc_nickname_or_nicknames=None): 34 35 assert(name) … … 69 70 70 71 72 class Contributor(Account): 73 def __init__(self, name, email_or_emails, irc_nickname=None): 74 Account.__init__(self, name, email_or_emails, irc_nickname) 75 self.is_contributor = True 76 77 71 78 class Committer(Contributor): 72 79 def __init__(self, name, email_or_emails, irc_nickname=None): … … 79 86 Committer.__init__(self, name, email_or_emails, irc_nickname) 80 87 self.can_review = True 88 89 90 # This is a list of email addresses that have bugzilla accounts but are not 91 # used for contributing (such as mailing lists). 92 93 94 watchers_who_are_not_contributors = [ 95 Account("Chromium Compositor Bugs", ["cc-bugs@google.com"], ""), 96 Account("David Levin", ["levin+threading@chromium.org"], ""), 97 Account("David Levin", ["levin+watchlist@chromium.org"], ""), 98 ] 81 99 82 100 … … 361 379 Reviewer("David Hyatt", "hyatt@apple.com", ["dhyatt", "hyatt"]), 362 380 Reviewer("David Kilzer", ["ddkilzer@webkit.org", "ddkilzer@apple.com"], "ddkilzer"), 363 Reviewer("David Levin", ["levin@chromium.org", "levin+threading@chromium.org", "levin+watchlist@chromium.org"], "dave_levin"),381 Reviewer("David Levin", "levin@chromium.org", "dave_levin"), 364 382 Reviewer("Dean Jackson", "dino@apple.com", "dino"), 365 383 Reviewer("Dimitri Glazkov", "dglazkov@chromium.org", "dglazkov"), … … 439 457 committers=committers_unable_to_review, 440 458 reviewers=reviewers_list, 441 contributors=contributors_who_are_not_committers): 459 contributors=contributors_who_are_not_committers, 460 watchers=watchers_who_are_not_contributors): 461 self._accounts = watchers + contributors + committers + reviewers 442 462 self._contributors = contributors + committers + reviewers 443 463 self._committers = committers + reviewers 444 464 self._reviewers = reviewers 445 self._contributors_by_email = {} 465 self._accounts_by_email = {} 466 self._accounts_by_login = {} 467 468 def accounts(self): 469 return self._accounts 446 470 447 471 def contributors(self): … … 454 478 return self._reviewers 455 479 456 def _email_to_contributor_map(self): 457 if not len(self._contributors_by_email): 458 for contributor in self._contributors: 459 for email in contributor.emails: 460 assert(email not in self._contributors_by_email) # We should never have duplicate emails. 461 self._contributors_by_email[email] = contributor 462 return self._contributors_by_email 480 def _email_to_account_map(self): 481 if not len(self._accounts_by_email): 482 for account in self._accounts: 483 for email in account.emails: 484 assert(email not in self._accounts_by_email) # We should never have duplicate emails. 485 self._accounts_by_email[email] = account 486 return self._accounts_by_email 487 488 def _login_to_account_map(self): 489 if not len(self._accounts_by_login): 490 for account in self._accounts: 491 if account.emails: 492 login = account.bugzilla_email() 493 assert(login not in self._accounts_by_login) # We should never have duplicate emails. 494 self._accounts_by_login[login] = account 495 return self._accounts_by_login 496 497 def _contributor_only(self, record): 498 if record and not record.is_contributor: 499 return None 500 return record 463 501 464 502 def _committer_only(self, record): … … 491 529 return filter(lambda contributor: contributor.contains_string(string), self.contributors()) 492 530 531 def account_by_login(self, login): 532 return self._login_to_account_map().get(login.lower()) 533 534 def account_by_email(self, email): 535 return self._email_to_account_map().get(email.lower()) 536 493 537 def contributor_by_email(self, email): 494 return self._ email_to_contributor_map().get(email.lower())538 return self._contributor_only(self.account_by_email(email)) 495 539 496 540 def committer_by_email(self, email): 497 return self._committer_only(self. contributor_by_email(email))541 return self._committer_only(self.account_by_email(email)) 498 542 499 543 def reviewer_by_email(self, email): 500 return self._reviewer_only(self. contributor_by_email(email))544 return self._reviewer_only(self.account_by_email(email)) -
trunk/Tools/Scripts/webkitpy/common/config/committers_unittest.py
r95232 r99786 28 28 29 29 import unittest 30 from webkitpy.common.config.committers import CommitterList, Contributor, Committer, Reviewer30 from webkitpy.common.config.committers import Account, CommitterList, Contributor, Committer, Reviewer 31 31 32 32 class CommittersTest(unittest.TestCase): 33 33 def test_committer_lookup(self): 34 account = Account('Test Zero', ['zero@test.com', 'zero@gmail.com'], 'zero') 34 35 committer = Committer('Test One', 'one@test.com', 'one') 35 36 reviewer = Reviewer('Test Two', ['two@test.com', 'Two@rad.com', 'so_two@gmail.com']) 36 37 contributor = Contributor('Test Three', ['Three@test.com'], 'three') 37 38 contributor_with_two_nicknames = Contributor('Other Four', ['otherfour@webkit.org'], ['four', 'otherfour']) 38 committer_list = CommitterList( committers=[committer], reviewers=[reviewer], contributors=[contributor, contributor_with_two_nicknames])39 committer_list = CommitterList(watchers=[account], committers=[committer], reviewers=[reviewer], contributors=[contributor, contributor_with_two_nicknames]) 39 40 40 41 # Test valid committer, reviewer and contributor lookup 42 self.assertEqual(committer_list.account_by_email('zero@test.com'), account) 41 43 self.assertEqual(committer_list.committer_by_email('one@test.com'), committer) 42 44 self.assertEqual(committer_list.reviewer_by_email('two@test.com'), reviewer) … … 54 56 # Test that the first email is assumed to be the Bugzilla email address (for now) 55 57 self.assertEqual(committer_list.committer_by_email('two@rad.com').bugzilla_email(), 'two@test.com') 58 59 # Test lookup by login email address 60 self.assertEqual(committer_list.account_by_login('zero@test.com'), account) 61 self.assertEqual(committer_list.account_by_login('zero@gmail.com'), None) 62 self.assertEqual(committer_list.account_by_login('one@test.com'), committer) 63 self.assertEqual(committer_list.account_by_login('two@test.com'), reviewer) 64 self.assertEqual(committer_list.account_by_login('Two@rad.com'), None) 65 self.assertEqual(committer_list.account_by_login('so_two@gmail.com'), None) 56 66 57 67 # Test that a known committer is not returned during reviewer lookup -
trunk/Tools/Scripts/webkitpy/common/config/watchlist
r99494 r99786 116 116 # two different accounts as far as bugzilla is concerned. 117 117 "ChromiumDumpRenderTree": [ "tkent@chromium.org", ], 118 "ChromiumGraphics": [ "jamesr@chromium.org", ],118 "ChromiumGraphics": [ "jamesr@chromium.org", "cc-bugs@google.com" ], 119 119 "ChromiumPublicApi": [ "fishd@chromium.org", ], 120 120 "Forms": [ "tkent@chromium.org", ], -
trunk/Tools/Scripts/webkitpy/common/watchlist/watchlistparser.py
r97885 r99786 147 147 self._validate_definitions(messages_definitions_set, self._MESSAGE_RULES, watch_list) 148 148 149 contributors = CommitterList()149 accounts = CommitterList() 150 150 for cc_rule in watch_list.cc_rules: 151 151 # Copy the instructions since we'll be remove items from the original list and … … 153 153 intructions_copy = cc_rule.instructions()[:] 154 154 for email in intructions_copy: 155 if not contributors.contributor_by_email(email):155 if not accounts.account_by_login(email): 156 156 cc_rule.remove_instruction(email) 157 157 self._log_error("The email alias %s which is in the watchlist is not listed as a contributor in committers.py" % email)
Note:
See TracChangeset
for help on using the changeset viewer.