// rollerWillSwitchDryRun sets expectations for the roller to switch the issue // into or out of dry run mode. func (r *mockRietveld) rollerWillSwitchDryRun(issue *rietveld.Issue, tryResults []*buildbucket.Build, dryRun bool) { r.updateIssue(issue, tryResults) // Initial issue update. r.urlMock.MockOnce(fmt.Sprintf("%s/%d/edit_flags", autoroll.RIETVELD_URL, issue.Issue), []byte{}) r.urlMock.MockOnce(fmt.Sprintf("%s/%d/edit_flags", autoroll.RIETVELD_URL, issue.Issue), []byte{}) issue.CommitQueueDryRun = dryRun r.updateIssue(issue, tryResults) // Update the issue after setting flags. }
// pretendRollLanded changes the roll to appear to have succeeded in the // mockRietveld. func (r *mockRietveld) pretendRollLanded(rm *mockRepoManager, issue *rietveld.Issue, tryResults []*buildbucket.Build) { // Determine what revision we rolled to. m := autoroll.ROLL_REV_REGEX.FindStringSubmatch(issue.Subject) assert.NotNil(r.t, m) assert.Equal(r.t, 3, len(m)) rolledTo, err := rm.FullSkiaHash(m[2]) assert.Nil(r.t, err) rm.mockRolledPast(rolledTo, true) rm.mockLastRollRev(rolledTo) rm.mockForceUpdate() issue.Closed = true issue.Committed = true issue.CommitQueue = false issue.CommitQueueDryRun = false issue.Description += "\n" + COMMITTED_STR r.modify(issue, tryResults) }
// pretendDryRunFinished sets expectations for when the dry run has finished. func (r *mockRietveld) pretendDryRunFinished(issue *rietveld.Issue, tryResults []*buildbucket.Build, success bool) { result := autoroll.TRYBOT_RESULT_FAILURE if success { result = autoroll.TRYBOT_RESULT_SUCCESS } for _, t := range tryResults { t.Status = autoroll.TRYBOT_STATUS_COMPLETED t.Result = result } issue.CommitQueue = false issue.CommitQueueDryRun = false r.updateIssue(issue, tryResults) // Initial issue update. // The roller will add a comment to the issue and close it if the dry run failed. if success { r.urlMock.MockOnce(fmt.Sprintf("%s/%d/publish", autoroll.RIETVELD_URL, issue.Issue), []byte{}) r.updateIssue(issue, tryResults) // Update the issue after adding a comment. } else { r.rollerWillCloseIssue(issue) } }
// pretendRollFailed changes the roll to appear to have failed in the // mockRietveld. func (r *mockRietveld) pretendRollFailed(issue *rietveld.Issue, tryResults []*buildbucket.Build) { issue.CommitQueue = false issue.CommitQueueDryRun = false r.modify(issue, tryResults) }