~mrazik/jenkins-launchpad-plugin/fail-if-no-bug

« back to all changes in this revision

Viewing changes to tests/test_launchpadTrigger.py

  • Committer: Tarmac
  • Author(s): Martin Mrazik
  • Date: 2013-02-19 19:11:49 UTC
  • mfrom: (74.1.1 jenkins-launchpad-plugin)
  • Revision ID: tarmac-20130219191149-9ac17vb9lmvbzz1b
More code coverage for launchpad.py.

Approved by Francis Ginther, PS Jenkins bot.

Show diffs side-by-side

added added

removed removed

Lines of Context:
5
5
from mock import MagicMock, patch
6
6
from jenkins import JenkinsException
7
7
from tests import JenkinsJSONData
 
8
from testscenarios import TestWithScenarios
 
9
from lazr.restfulclient.errors import Unauthorized
8
10
 
9
11
 
10
12
class LaunchpadTriggerInstantiation(unittest.TestCase):
17
19
 
18
20
 
19
21
class LaunchpadTriggerTestCase(unittest.TestCase):
20
 
 
21
22
    launchpadTrigger = None
22
23
    jenkinsUserName = 'jenkins-user'
23
24
 
156
157
            self.launchpadTrigger.start_jenkins_job('url', 'jenkins_job', mp)
157
158
            self.assertEqual(mp.createComment.call_count, 1)
158
159
 
 
160
    def test_start_jenkins_job_and_raise_unauthorized(self):
 
161
        mp = MagicMock()
 
162
        mp.web_link = 'http://my-example-url.com'
 
163
        mp.nominateReviewer.side_effect = Unauthorized("unauthorized", '')
 
164
        j = MagicMock()
 
165
        j.get_job_info = MagicMock(return_value={'buildable': True})
 
166
        jenkinsInstance = MagicMock()
 
167
        jenkinsInstance.Jenkins = MagicMock(return_value=j)
 
168
        with patch('launchpad.jenkins', new=jenkinsInstance):
 
169
            ret = self.launchpadTrigger.start_jenkins_job('url',
 
170
                                                          'jenkins_job',
 
171
                                                          mp)
 
172
            self.assertEqual(mp.createComment.call_count, 0)
 
173
            self.assertEqual(ret, False)
 
174
 
159
175
    def test_start_nonbuildable_jenkins_job(self):
160
176
        mp = MagicMock()
161
177
        j = MagicMock()
424
440
            self.launchpadTrigger = launchpad.LaunchpadTrigger()
425
441
 
426
442
 
 
443
class TestGetCommitMessage(TestWithScenarios, TestLaunchpadTrigger):
 
444
    scenarios = [
 
445
            ('no_commit_message',
 
446
                {
 
447
                    'commit_message': None,
 
448
                    'description': 'description',
 
449
                    'use_description': False,
 
450
                    'expected': None
 
451
                }),
 
452
            ('no_commit_message_fallback_to_description',
 
453
                {
 
454
                    'commit_message': None,
 
455
                    'description': 'description',
 
456
                    'use_description': True,
 
457
                    'expected': 'description'
 
458
                }),
 
459
            ('commit_message_and_description',
 
460
                {
 
461
                    'commit_message': 'commit_message',
 
462
                    'description': 'description',
 
463
                    'use_description': True,
 
464
                    'expected': 'commit_message'
 
465
                }),
 
466
            ('no_commit_message_and_no_description',
 
467
                {
 
468
                    'commit_message': '',
 
469
                    'description': '',
 
470
                    'use_description': True,
 
471
                    'expected': None
 
472
                }),
 
473
            ]
 
474
 
 
475
    def test_get_commit_message(self):
 
476
        mp = MagicMock()
 
477
        mp.commit_message = self.commit_message
 
478
        mp.description = self.description
 
479
        use_description = self.use_description
 
480
 
 
481
        message = self.launchpadTrigger.get_commit_message(mp, use_description)
 
482
        self.assertEqual(message, self.expected)
 
483
 
 
484
 
427
485
class LaunchpadTriggerCIWithWrongUser(TestLaunchpadTrigger):
428
486
    def setUp(self):
429
487
        super(LaunchpadTriggerCIWithWrongUser, self).setUp()