def METHOD_NAME(self):
    """Tests the ideal case in which all bots are happy and the request successfully goes
    through staging"""
    # Initial state: reviews have been created for the bots and for the staging workflow
    reqid = self.request.reqid
    self.assertReview(reqid, by_user=('factory-auto', 'new'))
    self.assertReview(reqid, by_user=('licensedigger', 'new'))
    self.assertReview(reqid, by_group=('factory-staging', 'new'))
    # Let bots come into play
    self.execute_review_bot([reqid], 'factory-auto')
    self.execute_review_bot([reqid], 'licensedigger')
    # Bots are happy, now it's time for manual review (requested by the bots) and
    # for the staging work
    self.assertReview(reqid, by_user=('factory-auto', 'accepted'))
    self.assertReview(reqid, by_user=('licensedigger', 'accepted'))
    # This review will be accepted when the Staging Manager puts it into a staging project
    self.assertReview(reqid, by_group=('factory-staging', 'new'))
    # Review created by CheckSource bot. This review should be manually accepted.
    self.assertReview(reqid, by_group=('opensuse-review-team', 'new'))
    # Let's first accept the manual review
    change_review_state(
        apiurl=self.wf.apiurl, reqid=reqid,
        newstate='accepted', by_group='opensuse-review-team'
    )
    # Now only the staging workflow is pending
    self.assertReview(reqid, by_user=('factory-auto', 'accepted'))
    self.assertReview(reqid, by_user=('licensedigger', 'accepted'))
    self.assertReview(reqid, by_group=('opensuse-review-team', 'accepted'))
    self.assertReview(reqid, by_group=('factory-staging', 'new'))
    # Before using the staging plugin, we need to force a reload of the configuration
    # because execute_review_bot temporarily switches the user and that causes problems
    self.wf.load_config()
    # The Staging Manager puts the request into a staging project
    SelectCommand(self.wf.api, STAGING_PROJECT_NAME).perform(['wine'])
    # The factory-staging review is now accepted and a new review associated to the
    # staging project has been created
    self.assertReview(reqid, by_group=('factory-staging', 'accepted'))
    self.assertReview(reqid, by_project=(STAGING_PROJECT_NAME, 'new'))
    # Let's say everything looks good in the staging project and the Staging Manager accepts it
    AcceptCommand(self.wf.api).accept_all([STAGING_PROJECT_NAME], True)
    # Finally, all the reviews are accepted: one for each bot, one for manual review and
    # two for the staging project (one as a consequence of selecting the package into a
    # staging project and the other as a consequence of accepting the staging)
    self.assertReview(reqid, by_user=('factory-auto', 'accepted'))
    self.assertReview(reqid, by_user=('licensedigger', 'accepted'))
    self.assertReview(reqid, by_group=('opensuse-review-team', 'accepted'))
    self.assertReview(reqid, by_group=('factory-staging', 'accepted'))
    self.assertReview(reqid, by_project=(STAGING_PROJECT_NAME, 'accepted'))
    # So it's time to accept the request
    self.request.change_state('accepted')
    self.assertRequestState(reqid, name='accepted')