~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to lib/lp/code/scripts/tests/test_merge_proposal_jobs.py

  • Committer: Guilherme Salgado
  • Date: 2010-05-19 18:07:56 UTC
  • mfrom: (10891 launchpad)
  • mto: This revision was merged to the branch mainline in revision 10969.
  • Revision ID: salgado@canonical.com-20100519180756-o3kscz32z25b03di
merge devel

Show diffs side-by-side

added added

removed removed

Lines of Context:
6
6
"""Test the sendbranchmail script"""
7
7
 
8
8
import unittest
9
 
import transaction
10
9
 
11
10
from canonical.testing import ZopelessAppServerLayer
12
11
from lp.testing import TestCaseWithFactory
13
12
from canonical.launchpad.scripts.tests import run_script
14
 
from lp.code.model.branchmergeproposal import BranchMergeProposal
15
 
from lp.code.model.branchmergeproposaljob import MergeProposalCreatedJob
16
 
 
17
 
 
18
 
class TestDiffBMPs(TestCaseWithFactory):
 
13
 
 
14
 
 
15
class TestMergeProposalJobScript(TestCaseWithFactory):
19
16
 
20
17
    layer = ZopelessAppServerLayer
21
18
 
22
 
    def test_mpcreationjobs(self):
23
 
        """Ensure mpcreationjobs runs and generates diffs."""
24
 
        self.useTempBzrHome()
25
 
        target, target_tree = self.createMirroredBranchAndTree()
26
 
        target_tree.bzrdir.root_transport.put_bytes('foo', 'foo\n')
27
 
        target_tree.add('foo')
28
 
        target_tree.commit('added foo')
29
 
        target.linkBug(self.factory.makeBug(), target.registrant)
30
 
        source, source_tree = self.createMirroredBranchAndTree()
31
 
        source_tree.pull(target_tree.branch)
32
 
        source_tree.bzrdir.root_transport.put_bytes('foo', 'foo\nbar\n')
33
 
        source_tree.commit('added bar')
34
 
        # Add a fake revisions so the proposal is ready.
35
 
        self.factory.makeRevisionsForBranch(source, count=1)
36
 
        source.linkBug(self.factory.makeBug(), source.registrant)
37
 
        bmp = BranchMergeProposal(
38
 
            source_branch=source, target_branch=target,
39
 
            registrant=source.owner)
40
 
        job = MergeProposalCreatedJob.create(bmp)
41
 
        self.assertIs(None, bmp.preview_diff)
42
 
        transaction.commit()
 
19
    def test_script_runs(self):
 
20
        """Ensure merge-proposal-jobs script runs."""
43
21
        retcode, stdout, stderr = run_script(
44
 
            'cronscripts/mpcreationjobs.py', [])
 
22
            'cronscripts/merge-proposal-jobs.py', [])
45
23
        self.assertEqual(0, retcode)
46
24
        self.assertEqual('', stdout)
47
25
        self.assertEqual(
48
 
            'INFO    creating lockfile\n'
49
 
            'INFO    Ran 1 MergeProposalCreatedJobs.\n', stderr)
50
 
        self.assertIs(None, bmp.review_diff)
51
 
        self.assertIsNot(None, bmp.preview_diff)
52
 
 
53
 
    def test_mpcreationjobs_records_oops(self):
54
 
        """Ensure mpcreationjobs logs an oops if the job fails."""
55
 
        bmp = self.factory.makeBranchMergeProposal()
56
 
        self.factory.makeRevisionsForBranch(bmp.source_branch, count=1)
57
 
        job = MergeProposalCreatedJob.create(bmp)
58
 
        transaction.commit()
59
 
        retcode, stdout, stderr = run_script(
60
 
            'cronscripts/mpcreationjobs.py', [])
61
 
        self.assertEqual(0, retcode)
62
 
        self.assertEqual('', stdout)
63
 
        self.assertIn(
64
 
            'INFO    Ran 0 MergeProposalCreatedJobs.\n', stderr)
65
 
        self.assertIn(
66
 
            'INFO    Job resulted in OOPS:', stderr)
 
26
            'INFO    Creating lockfile:'
 
27
            ' /var/lock/launchpad-merge-proposal-jobs.lock\n'
 
28
            'INFO    Running through Twisted.\n', stderr)
67
29
 
68
30
def test_suite():
69
31
    return unittest.TestLoader().loadTestsFromName(__name__)