Пример #1
0
 def test_MergeProposalNeedsReviewEmailJob(self):
     """MergeProposalNeedsReviewEmailJob runs under Celery."""
     self.useFixture(FeatureFixture(
         {'jobs.celery.enabled_classes':
          'MergeProposalNeedsReviewEmailJob'}))
     bmp = self.factory.makeBranchMergeProposal()
     with block_on_job():
         MergeProposalNeedsReviewEmailJob.create(bmp)
         transaction.commit()
     self.assertEqual(2, len(pop_remote_notifications()))
Пример #2
0
 def test_run_sends_email(self):
     """MergeProposalCreationJob.run sends an email."""
     self.useBzrBranches(direct_database=True)
     bmp = self.createProposalWithEmptyBranches()
     job = MergeProposalNeedsReviewEmailJob.create(bmp)
     self.assertEqual([], pop_notifications())
     job.run()
     self.assertEqual(2, len(pop_notifications()))
Пример #3
0
 def test_run_sends_email(self):
     """MergeProposalCreationJob.run sends an email."""
     bmp = self.createProposalWithEmptyBranches()
     job = MergeProposalNeedsReviewEmailJob.create(bmp)
     self.assertEqual([], pop_notifications())
     with dbuser("merge-proposal-jobs"):
         JobRunner([job]).runAll()
     self.assertEqual(2, len(pop_notifications()))
Пример #4
0
    def test_get(self):
        """Ensure get returns or raises appropriately.

        It's an error to call get on BranchMergeProposalJobDerived-- it must
        be called on a subclass.  An object is returned only if the job id
        and job type match the request.  If no suitable object can be found,
        SQLObjectNotFound is raised.
        """
        bmp = self.factory.makeBranchMergeProposal()
        job = MergeProposalNeedsReviewEmailJob.create(bmp)
        transaction.commit()
        self.assertRaises(AttributeError, BranchMergeProposalJobDerived.get,
                          job.id)
        self.assertRaises(SQLObjectNotFound, UpdatePreviewDiffJob.get, job.id)
        self.assertRaises(SQLObjectNotFound,
                          MergeProposalNeedsReviewEmailJob.get, job.id + 1)
        self.assertEqual(job, MergeProposalNeedsReviewEmailJob.get(job.id))
    def test_get(self):
        """Ensure get returns or raises appropriately.

        It's an error to call get on BranchMergeProposalJobDerived-- it must
        be called on a subclass.  An object is returned only if the job id
        and job type match the request.  If no suitable object can be found,
        SQLObjectNotFound is raised.
        """
        bmp = self.factory.makeBranchMergeProposal()
        job = MergeProposalNeedsReviewEmailJob.create(bmp)
        transaction.commit()
        self.assertRaises(
            AttributeError, BranchMergeProposalJobDerived.get, job.id)
        self.assertRaises(SQLObjectNotFound, UpdatePreviewDiffJob.get, job.id)
        self.assertRaises(
            SQLObjectNotFound, MergeProposalNeedsReviewEmailJob.get,
            job.id + 1)
        self.assertEqual(job, MergeProposalNeedsReviewEmailJob.get(job.id))
Пример #6
0
 def test_getOopsMailController(self):
     """The registrant is notified about merge proposal creation issues."""
     bmp = self.makeBranchMergeProposal()
     job = MergeProposalNeedsReviewEmailJob.create(bmp)
     ctrl = job.getOopsMailController('1234')
     self.assertEqual([bmp.registrant.preferredemail.email], ctrl.to_addrs)
     message = ('notifying people about the proposal to merge %s into %s' %
                (bmp.merge_source.identity, bmp.merge_target.identity))
     self.assertIn(message, ctrl.body)
 def test_getOopsMailController(self):
     """The registrant is notified about merge proposal creation issues."""
     bmp = self.factory.makeBranchMergeProposal()
     job = MergeProposalNeedsReviewEmailJob.create(bmp)
     ctrl = job.getOopsMailController('1234')
     self.assertEqual([bmp.registrant.preferredemail.email], ctrl.to_addrs)
     message = (
         'notifying people about the proposal to merge %s into %s' %
         (bmp.source_branch.bzr_identity, bmp.target_branch.bzr_identity))
     self.assertIn(message, ctrl.body)
Пример #8
0
 def test_MergeProposalCreateJob_with_sourcepackage_branch(self):
     """Jobs for merge proposals with sourcepackage branches work."""
     self.useBzrBranches(direct_database=True)
     bmp = self.factory.makeBranchMergeProposal(
         target_branch=self.factory.makePackageBranch())
     tree = self.create_branch_and_tree(db_branch=bmp.target_branch)[1]
     # XXX: AaronBentley 2010-08-06 bug=614404: a bzr username is
     # required to generate the revision-id.
     with override_environ(BZR_EMAIL='*****@*****.**'):
         tree.commit('Initial commit')
     self.createBzrBranch(bmp.source_branch, tree.branch)
     self.factory.makeRevisionsForBranch(bmp.source_branch, count=1)
     job = MergeProposalNeedsReviewEmailJob.create(bmp)
     with dbuser("merge-proposal-jobs"):
         job.run()
Пример #9
0
 def test_getOperationDescription(self):
     bmp = self.factory.makeBranchMergeProposal()
     job = MergeProposalNeedsReviewEmailJob.create(bmp)
     self.assertTrue(
         job.getOperationDescription().startswith(
             'notifying people about the proposal to merge'))
Пример #10
0
 def test_providesInterface(self):
     """MergeProposalNeedsReviewEmailJob provides expected interfaces."""
     bmp = self.factory.makeBranchMergeProposal()
     job = MergeProposalNeedsReviewEmailJob.create(bmp)
     verifyObject(IMergeProposalNeedsReviewEmailJob, job)
     verifyObject(IBranchMergeProposalJob, job)