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

Unified Diff: Tools/Scripts/webkitpy/common/net/bugzilla/bugzilla_mock.py

Issue 17639006: Remove committer list, bugzilla, watchlist code and transitive closure of stuff. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: merge on top of thakis' change in r153020 Created 7 years, 6 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
Index: Tools/Scripts/webkitpy/common/net/bugzilla/bugzilla_mock.py
diff --git a/Tools/Scripts/webkitpy/common/net/bugzilla/bugzilla_mock.py b/Tools/Scripts/webkitpy/common/net/bugzilla/bugzilla_mock.py
deleted file mode 100644
index 2447ed284d88781c85ece51f38a96d6714efc721..0000000000000000000000000000000000000000
--- a/Tools/Scripts/webkitpy/common/net/bugzilla/bugzilla_mock.py
+++ /dev/null
@@ -1,432 +0,0 @@
-# Copyright (C) 2011 Google Inc. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following disclaimer
-# in the documentation and/or other materials provided with the
-# distribution.
-# * Neither the name of Google Inc. nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-import datetime
-import logging
-
-from .bug import Bug
-from .attachment import Attachment
-from webkitpy.common.config.committers import CommitterList, Reviewer
-
-_log = logging.getLogger(__name__)
-
-
-def _id_to_object_dictionary(*objects):
- dictionary = {}
- for thing in objects:
- dictionary[thing["id"]] = thing
- return dictionary
-
-# Testing
-
-
-_patch1 = {
- "id": 10000,
- "bug_id": 50000,
- "url": "http://example.com/10000",
- "name": "Patch1",
- "is_obsolete": False,
- "is_patch": True,
- "review": "+",
- "reviewer_email": "foo@bar.com",
- "commit-queue": "+",
- "committer_email": "foo@bar.com",
- "attacher_email": "Contributer1",
-}
-
-
-_patch2 = {
- "id": 10001,
- "bug_id": 50000,
- "url": "http://example.com/10001",
- "name": "Patch2",
- "is_obsolete": False,
- "is_patch": True,
- "review": "+",
- "reviewer_email": "reviewer2@webkit.org",
- "commit-queue": "+",
- "committer_email": "non-committer@example.com",
- "attacher_email": "eric@webkit.org",
-}
-
-
-_patch3 = {
- "id": 10002,
- "bug_id": 50001,
- "url": "http://example.com/10002",
- "name": "Patch3",
- "is_obsolete": False,
- "is_patch": True,
- "review": "?",
- "commit-queue": "-",
- "attacher_email": "eric@webkit.org",
- "attach_date": datetime.datetime.today(),
-}
-
-
-_patch4 = {
- "id": 10003,
- "bug_id": 50003,
- "url": "http://example.com/10002",
- "name": "Patch3",
- "is_obsolete": False,
- "is_patch": True,
- "review": "+",
- "commit-queue": "?",
- "reviewer_email": "foo@bar.com",
- "attacher_email": "Contributer2",
-}
-
-
-_patch5 = {
- "id": 10004,
- "bug_id": 50003,
- "url": "http://example.com/10002",
- "name": "Patch5",
- "is_obsolete": False,
- "is_patch": True,
- "review": "+",
- "reviewer_email": "foo@bar.com",
- "attacher_email": "eric@webkit.org",
-}
-
-
-_patch6 = { # Valid committer, but no reviewer.
- "id": 10005,
- "bug_id": 50003,
- "url": "http://example.com/10002",
- "name": "ROLLOUT of r3489",
- "is_obsolete": False,
- "is_patch": True,
- "commit-queue": "+",
- "committer_email": "foo@bar.com",
- "attacher_email": "eric@webkit.org",
-}
-
-
-_patch7 = { # Valid review, patch is marked obsolete.
- "id": 10006,
- "bug_id": 50002,
- "url": "http://example.com/10002",
- "name": "Patch7",
- "is_obsolete": True,
- "is_patch": True,
- "review": "+",
- "reviewer_email": "foo@bar.com",
- "attacher_email": "eric@webkit.org",
-}
-
-
-# This matches one of Bug.unassigned_emails
-_unassigned_email = "webkit-unassigned@lists.webkit.org"
-# This is needed for the FlakyTestReporter to believe the bug
-# was filed by one of the webkitpy bots.
-_commit_queue_email = "commit-queue@webkit.org"
-
-
-_bug1 = {
- "id": 50000,
- "title": "Bug with two r+'d and cq+'d patches, one of which has an "
- "invalid commit-queue setter.",
- "reporter_email": "foo@foo.com",
- "assigned_to_email": _unassigned_email,
- "cc_emails": [],
- "attachments": [_patch1, _patch2],
- "bug_status": "UNCONFIRMED",
- "comments": [],
-}
-
-
-_bug2 = {
- "id": 50001,
- "title": "Bug with a patch needing review.",
- "reporter_email": "eric@webkit.org",
- "assigned_to_email": "foo@foo.com",
- "cc_emails": ["abarth@webkit.org", ],
- "attachments": [_patch3],
- "bug_status": "ASSIGNED",
- "comments": [{"comment_date": datetime.datetime(2011, 6, 11, 9, 4, 3),
- "comment_email": "bar@foo.com",
- "text": "Message1.\nCommitted r35: <http://trac.webkit.org/changeset/35>",
- },
- ],
-}
-
-
-_bug3 = {
- "id": 50002,
- "title": "The third bug",
- "reporter_email": "foo@foo.com",
- "assigned_to_email": _unassigned_email,
- "cc_emails": [],
- "attachments": [_patch7],
- "bug_status": "NEW",
- "comments": [{"comment_date": datetime.datetime(2011, 6, 11, 9, 4, 3),
- "comment_email": "bar@foo.com",
- "text": "Committed r30: <http://trac.webkit.org/changeset/30>",
- },
- {"comment_date": datetime.datetime(2011, 6, 11, 9, 4, 3),
- "comment_email": "bar@foo.com",
- "text": "Committed r31: <http://trac.webkit.org/changeset/31>",
- },
- ],
-}
-
-
-_bug4 = {
- "id": 50003,
- "title": "The fourth bug",
- "reporter_email": "foo@foo.com",
- "assigned_to_email": "foo@foo.com",
- "cc_emails": [],
- "attachments": [_patch4, _patch5, _patch6],
- "bug_status": "REOPENED",
- "comments": [{"comment_date": datetime.datetime(2011, 6, 11, 9, 4, 3),
- "comment_email": "bar@foo.com",
- "text": "Committed r25: <http://trac.webkit.org/changeset/30>",
- },
- {"comment_date": datetime.datetime(2011, 6, 11, 9, 4, 3),
- "comment_email": "bar@foo.com",
- "text": "Rolled out in <http://trac.webkit.org/changeset/26",
- },
- ],
-}
-
-
-_bug5 = {
- "id": 50004,
- "title": "The fifth bug",
- "reporter_email": _commit_queue_email,
- "assigned_to_email": "foo@foo.com",
- "cc_emails": [],
- "attachments": [],
- "bug_status": "RESOLVED",
- "dup_id": 50002,
- "comments": [{"comment_date": datetime.datetime(2011, 6, 11, 9, 4, 3),
- "comment_email": "bar@foo.com",
- "text": "Committed r15: <http://trac.webkit.org/changeset/15>",
- },
- ],
-
-}
-
-
-class MockBugzillaQueries(object):
-
- def __init__(self, bugzilla):
- self._bugzilla = bugzilla
-
- def _all_bugs(self):
- return map(lambda bug_dictionary: Bug(bug_dictionary, self._bugzilla),
- self._bugzilla.bug_cache.values())
-
- def fetch_bug_ids_from_commit_queue(self):
- bugs_with_commit_queued_patches = filter(
- lambda bug: bug.commit_queued_patches(),
- self._all_bugs())
- return map(lambda bug: bug.id(), bugs_with_commit_queued_patches)
-
- def fetch_attachment_ids_from_review_queue(self):
- unreviewed_patches = sum([bug.unreviewed_patches()
- for bug in self._all_bugs()], [])
- return map(lambda patch: patch.id(), unreviewed_patches)
-
- def fetch_patches_from_commit_queue(self):
- return sum([bug.commit_queued_patches()
- for bug in self._all_bugs()], [])
-
- def fetch_bug_ids_from_pending_commit_list(self):
- bugs_with_reviewed_patches = filter(lambda bug: bug.reviewed_patches(),
- self._all_bugs())
- bug_ids = map(lambda bug: bug.id(), bugs_with_reviewed_patches)
- # NOTE: This manual hack here is to allow testing logging in
- # test_assign_to_committer the real pending-commit query on bugzilla
- # will return bugs with patches which have r+, but are also obsolete.
- return bug_ids + [50002]
-
- def fetch_bugs_from_review_queue(self, cc_email=None):
- unreviewed_bugs = [bug for bug in self._all_bugs() if bug.unreviewed_patches()]
-
- if cc_email:
- return [bug for bug in unreviewed_bugs if cc_email in bug.cc_emails()]
-
- return unreviewed_bugs
-
- def fetch_patches_from_pending_commit_list(self):
- return sum([bug.reviewed_patches() for bug in self._all_bugs()], [])
-
- def fetch_bugs_matching_search(self, search_string):
- return [self._bugzilla.fetch_bug(50004), self._bugzilla.fetch_bug(50003)]
-
- def fetch_bugs_matching_quicksearch(self, search_string):
- return [self._bugzilla.fetch_bug(50001), self._bugzilla.fetch_bug(50002),
- self._bugzilla.fetch_bug(50003), self._bugzilla.fetch_bug(50004)]
-
-
-_mock_reviewers = [Reviewer("Foo Bar", "foo@bar.com"),
- Reviewer("Reviewer2", "reviewer2@webkit.org")]
-
-
-# FIXME: Bugzilla is the wrong Mock-point. Once we have a BugzillaNetwork
-# class we should mock that instead.
-# Most of this class is just copy/paste from Bugzilla.
-class MockBugzilla(object):
-
- bug_server_url = "http://example.com"
-
- bug_cache = _id_to_object_dictionary(_bug1, _bug2, _bug3, _bug4, _bug5)
-
- attachment_cache = _id_to_object_dictionary(_patch1,
- _patch2,
- _patch3,
- _patch4,
- _patch5,
- _patch6,
- _patch7)
-
- def __init__(self):
- self.queries = MockBugzillaQueries(self)
- # FIXME: This should move onto the Host object, and we should use a MockCommitterList
- self.committers = CommitterList(reviewers=_mock_reviewers)
- self.username = None
- self._override_patch = None
-
- def authenticate(self):
- self.username = "username@webkit.org"
-
- def create_bug(self,
- bug_title,
- bug_description,
- component=None,
- diff=None,
- patch_description=None,
- cc=None,
- blocked=None,
- mark_for_review=False,
- mark_for_commit_queue=False):
- _log.info("MOCK create_bug")
- _log.info("bug_title: %s" % bug_title)
- _log.info("bug_description: %s" % bug_description)
- if component:
- _log.info("component: %s" % component)
- if cc:
- _log.info("cc: %s" % cc)
- if blocked:
- _log.info("blocked: %s" % blocked)
- return 60001
-
- def quips(self):
- return ["Good artists copy. Great artists steal. - Pablo Picasso"]
-
- def fetch_bug(self, bug_id):
- return Bug(self.bug_cache.get(int(bug_id)), self)
-
- def set_override_patch(self, patch):
- self._override_patch = patch
-
- def fetch_attachment(self, attachment_id):
- if self._override_patch:
- return self._override_patch
-
- attachment_dictionary = self.attachment_cache.get(attachment_id)
- if not attachment_dictionary:
- print "MOCK: fetch_attachment: %s is not a known attachment id" % attachment_id
- return None
- bug = self.fetch_bug(attachment_dictionary["bug_id"])
- for attachment in bug.attachments(include_obsolete=True):
- if attachment.id() == int(attachment_id):
- return attachment
-
- def bug_url_for_bug_id(self, bug_id):
- return "%s/%s" % (self.bug_server_url, bug_id)
-
- def fetch_bug_dictionary(self, bug_id):
- return self.bug_cache.get(bug_id)
-
- def attachment_url_for_id(self, attachment_id, action="view"):
- action_param = ""
- if action and action != "view":
- action_param = "&action=%s" % action
- return "%s/%s%s" % (self.bug_server_url, attachment_id, action_param)
-
- def reassign_bug(self, bug_id, assignee=None, comment_text=None):
- _log.info("MOCK reassign_bug: bug_id=%s, assignee=%s" % (bug_id, assignee))
- if comment_text:
- _log.info("-- Begin comment --")
- _log.info(comment_text)
- _log.info("-- End comment --")
-
- def set_flag_on_attachment(self,
- attachment_id,
- flag_name,
- flag_value,
- comment_text=None):
- _log.info("MOCK setting flag '%s' to '%s' on attachment '%s' with comment '%s'" % (
- flag_name, flag_value, attachment_id, comment_text))
-
- def post_comment_to_bug(self, bug_id, comment_text, cc=None):
- _log.info("MOCK bug comment: bug_id=%s, cc=%s\n--- Begin comment ---\n%s\n--- End comment ---\n" % (
- bug_id, cc, comment_text))
-
- def add_attachment_to_bug(self, bug_id, file_or_string, description, filename=None, comment_text=None, mimetype=None):
- _log.info("MOCK add_attachment_to_bug: bug_id=%s, description=%s filename=%s mimetype=%s" %
- (bug_id, description, filename, mimetype))
- if comment_text:
- _log.info("-- Begin comment --")
- _log.info(comment_text)
- _log.info("-- End comment --")
-
- def add_patch_to_bug(self,
- bug_id,
- diff,
- description,
- comment_text=None,
- mark_for_review=False,
- mark_for_commit_queue=False,
- mark_for_landing=False):
- _log.info("MOCK add_patch_to_bug: bug_id=%s, description=%s, mark_for_review=%s, mark_for_commit_queue=%s, mark_for_landing=%s" %
- (bug_id, description, mark_for_review, mark_for_commit_queue, mark_for_landing))
- if comment_text:
- _log.info("-- Begin comment --")
- _log.info(comment_text)
- _log.info("-- End comment --")
-
- def add_cc_to_bug(self, bug_id, ccs):
- pass
-
- def obsolete_attachment(self, attachment_id, message=None):
- pass
-
- def reopen_bug(self, bug_id, message):
- _log.info("MOCK reopen_bug %s with comment '%s'" % (bug_id, message))
-
- def close_bug_as_fixed(self, bug_id, message):
- pass
-
- def clear_attachment_flags(self, attachment_id, message):
- pass

Powered by Google App Engine
This is Rietveld 408576698