def test_no_job_created_if_no_delta(self): """Ensure None is returned if no change has been made.""" merge_proposal, person = self.makeProposalWithSubscriber() old_merge_proposal = Snapshot( merge_proposal, providing=providedBy(merge_proposal)) event = ObjectModifiedEvent( merge_proposal, old_merge_proposal, [], merge_proposal.registrant) merge_proposal_modified(merge_proposal, event) self.assertIs(None, self.getProposalUpdatedEmailJob(merge_proposal))
def test_job_created_if_work_in_progress_merged(self): # If work in progress is merged, then that is email worthy. merge_proposal, person = self.makeProposalWithSubscriber( needs_review=False) old_merge_proposal = Snapshot( merge_proposal, providing=providedBy(merge_proposal)) merge_proposal.setStatus(BranchMergeProposalStatus.MERGED) event = ObjectModifiedEvent( merge_proposal, old_merge_proposal, [], merge_proposal.registrant) merge_proposal_modified(merge_proposal, event) job = self.getProposalUpdatedEmailJob(merge_proposal) self.assertIsNot(None, job, 'Job was not created.')
def test_no_job_created_if_work_in_progress(self): """Ensure None is returned if no change has been made.""" merge_proposal, person = self.makeProposalWithSubscriber( needs_review=False) old_merge_proposal = Snapshot( merge_proposal, providing=providedBy(merge_proposal)) merge_proposal.commit_message = 'new commit message' merge_proposal.description = 'change description' event = ObjectModifiedEvent( merge_proposal, old_merge_proposal, [], merge_proposal.registrant) merge_proposal_modified(merge_proposal, event) self.assertIs(None, self.getProposalUpdatedEmailJob(merge_proposal))
def test_no_job_created_if_only_preview_diff_changed(self): """Ensure None is returned if only the preview diff has changed.""" merge_proposal, person = self.makeProposalWithSubscriber() old_merge_proposal = Snapshot( merge_proposal, providing=providedBy(merge_proposal)) merge_proposal.updatePreviewDiff( ''.join(unified_diff('', 'Fake diff')), unicode(self.factory.getUniqueString('revid')), unicode(self.factory.getUniqueString('revid'))) event = ObjectModifiedEvent( merge_proposal, old_merge_proposal, [], merge_proposal.registrant) merge_proposal_modified(merge_proposal, event) self.assertIs(None, self.getProposalUpdatedEmailJob(merge_proposal))
def makeProposalUpdatedEmailJob(self): """Fixture method providing a mailer for a modified merge proposal""" merge_proposal, subscriber = self.makeProposalWithSubscriber() old_merge_proposal = Snapshot( merge_proposal, providing=providedBy(merge_proposal)) merge_proposal.requestReview() merge_proposal.commit_message = 'new commit message' merge_proposal.description = 'change description' event = ObjectModifiedEvent( merge_proposal, old_merge_proposal, [], merge_proposal.registrant) merge_proposal_modified(merge_proposal, event) job = self.getProposalUpdatedEmailJob(merge_proposal) self.assertIsNot(None, job, 'Job was not created.') return job, subscriber
def test_iterReady_supports_updated_emails(self): # iterReady will also return pending MergeProposalUpdatedEmailJob. bmp = self.makeBranchMergeProposal( set_state=BranchMergeProposalStatus.NEEDS_REVIEW) self.completePendingJobs() old_merge_proposal = ( BranchMergeProposalNoPreviewDiffDelta.snapshot(bmp)) bmp.commit_message = 'new commit message' event = ObjectModifiedEvent( bmp, old_merge_proposal, [], bmp.registrant) merge_proposal_modified(bmp, event) [job] = self.job_source.iterReady() self.assertEqual(job.branch_merge_proposal, bmp) self.assertIsInstance(job, MergeProposalUpdatedEmailJob)