~fginther/jenkins-launchpad-plugin/indirect-team-membership

« back to all changes in this revision

Viewing changes to tests/test_jenkinsutils.py

  • Committer: Aaron Bentley
  • Date: 2013-10-09 19:43:05 UTC
  • Revision ID: aaron@canonical.com-20131009194305-i90gwy3v9dfpmm6f
Change user_allowed_to_trigger_jobs to accept multiple users.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1123
1123
 
1124
1124
 
1125
1125
class TestTriggerCi(unittest.TestCase):
1126
 
    @patch('jlp.launchpadutils.user_allowed_to_trigger_jobs',
 
1126
    @patch('jlp.launchpadutils.users_allowed_to_trigger_jobs',
1127
1127
           new=lambda x: False)
1128
1128
    @patch('jlp.jenkinsutils.start_jenkins_job')
1129
1129
    def test_trigger_ci_with_wrong_user(self, start_jenkins_job):
1143
1143
 
1144
1144
    @patch('jlp.launchpadutils.testing_in_progress',
1145
1145
           new=lambda mp, jenkins_job: True)
1146
 
    @patch('jlp.launchpadutils.user_allowed_to_trigger_jobs')
 
1146
    @patch('jlp.launchpadutils.users_allowed_to_trigger_jobs')
1147
1147
    @patch('jlp.jenkinsutils.start_jenkins_job')
1148
1148
    def test_trigger_ci_while_testing_in_progress(self,
1149
1149
                                                  start_jenkins_job,
1157
1157
           new=lambda x, y: True)
1158
1158
    @patch('jlp.launchpadutils.testing_in_progress',
1159
1159
           new=lambda mp, jenkins_job: False)
1160
 
    @patch('jlp.launchpadutils.user_allowed_to_trigger_jobs')
 
1160
    @patch('jlp.launchpadutils.users_allowed_to_trigger_jobs')
1161
1161
    @patch('jlp.jenkinsutils.start_jenkins_job')
1162
1162
    def test_trigger_ci_while_Revision_validated(self,
1163
1163
                                                 start_jenkins_job,
1172
1172
           new=lambda x, y: False)
1173
1173
    @patch('jlp.launchpadutils.testing_in_progress',
1174
1174
           new=lambda mp, jenkins_job: False)
1175
 
    @patch('jlp.launchpadutils.user_allowed_to_trigger_jobs')
 
1175
    @patch('jlp.launchpadutils.users_allowed_to_trigger_jobs')
1176
1176
    @patch('jlp.jenkinsutils.start_jenkins_job')
1177
1177
    def test_trigger_ci_while_Revision_not_validated(self,
1178
1178
                                                     start_jenkins_job,
1187
1187
 
1188
1188
 
1189
1189
class TestTriggerAl(unittest.TestCase):
1190
 
    @patch('jlp.launchpadutils.user_allowed_to_trigger_jobs',
 
1190
    @patch('jlp.launchpadutils.users_allowed_to_trigger_jobs',
1191
1191
           new=lambda x: False)
1192
1192
    @patch('jlp.jenkinsutils.start_jenkins_job')
1193
1193
    def test_trigger_al_without_permissions(self, start_jenkins_job):
1201
1201
 
1202
1202
    @patch('jlp.launchpadutils.is_commit_message_set',
1203
1203
           new=lambda x, y, z: False)
1204
 
    @patch('jlp.launchpadutils.user_allowed_to_trigger_jobs',
 
1204
    @patch('jlp.launchpadutils.users_allowed_to_trigger_jobs',
1205
1205
           new=lambda x: True)
1206
1206
    @patch('jlp.launchpadutils.change_mp_status')
1207
1207
    @patch('jlp.jenkinsutils.start_jenkins_job')
1221
1221
 
1222
1222
    @patch('jlp.launchpadutils.is_commit_message_set',
1223
1223
           new=lambda x, y, z: True)
1224
 
    @patch('jlp.launchpadutils.user_allowed_to_trigger_jobs',
 
1224
    @patch('jlp.launchpadutils.users_allowed_to_trigger_jobs',
1225
1225
           new=lambda x: True)
1226
1226
    @patch('jlp.launchpadutils.testing_in_progress',
1227
1227
           new=lambda mp, jenkins_job: True)
1240
1240
           new=lambda x, y: False)
1241
1241
    @patch('jlp.launchpadutils.is_commit_message_set',
1242
1242
           new=lambda x, y, z: True)
1243
 
    @patch('jlp.launchpadutils.user_allowed_to_trigger_jobs',
 
1243
    @patch('jlp.launchpadutils.users_allowed_to_trigger_jobs',
1244
1244
           new=lambda x: True)
1245
1245
    @patch('jlp.jenkinsutils.start_jenkins_job')
1246
1246
    def test_trigger_al_with_unapproved_prerequisite(self,
1259
1259
           new=lambda x: False)
1260
1260
    @patch('jlp.launchpadutils.testing_in_progress',
1261
1261
           new=lambda x, y: False)
1262
 
    @patch('jlp.launchpadutils.user_allowed_to_trigger_jobs',
 
1262
    @patch('jlp.launchpadutils.users_allowed_to_trigger_jobs',
1263
1263
           new=lambda x: True)
1264
1264
    @patch('jlp.jenkinsutils.start_jenkins_job')
1265
1265
    def test_trigger_al(self, start_jenkins_job):
1274
1274
 
1275
1275
class LaunchpadTriggerAutolandingWithTrustedReviewer(unittest.TestCase):
1276
1276
    def setUp(self):
1277
 
        self.user_allowed_to_trigger_jobs_patch = patch(
1278
 
            'jlp.launchpadutils.user_allowed_to_trigger_jobs',
1279
 
            new=lambda x: x)
1280
 
        self.user_allowed_to_trigger_jobs_patch.start()
 
1277
        self.users_allowed_to_trigger_jobs_patch = patch(
 
1278
            'jlp.launchpadutils.users_allowed_to_trigger_jobs',
 
1279
            new=lambda x: len([y for y in x if y]))
 
1280
        self.users_allowed_to_trigger_jobs_patch.start()
1281
1281
        self.is_commit_message_set_patch = patch(
1282
1282
            'jlp.launchpadutils.is_commit_message_set',
1283
1283
            new=lambda x, y, z: True)
1300
1300
    def tearDown(self):
1301
1301
        self.is_commit_message_set_patch.stop()
1302
1302
        self.testing_in_progress_patch.stop()
1303
 
        self.user_allowed_to_trigger_jobs_patch.stop()
 
1303
        self.users_allowed_to_trigger_jobs_patch.stop()
1304
1304
        self.start_jenkins_job_patch.stop()
1305
1305
        self.unapproved_prerequisite_exists_patch.stop()
1306
1306
 
1307
1307
    def test_trigger_al_with_trusted_reviewer(self):
1308
1308
        mp = MagicMock()
1309
 
        #user_allowed_to_trigger_jobs now returns what it gets as an argument
1310
 
        #(see the lambda in constructor)
 
1309
        #users_allowed_to_trigger_jobs now returns True if any argument
 
1310
        #evaluates to True.  (See the lambda in the constructor.)
1311
1311
        #We want to return False for registrant (i.e. person who create MP is
1312
1312
        #not allowed to trigger jobs in our infrastructure)
1313
1313
        #We want to return True for reviewer (i.e. the person who reviewed is
1319
1319
 
1320
1320
    def test_trigger_al_with_trusted_registrant(self):
1321
1321
        mp = MagicMock()
1322
 
        #user_allowed_to_trigger_jobs now returns what it gets as an argument
1323
 
        #(see the lambda in constructor)
 
1322
        #users_allowed_to_trigger_jobs now returns True if any argument
 
1323
        #evaluates to True.  (See the lambda in the constructor.)
1324
1324
        #in this test-case even if the reviewer is not trusted we trust the
1325
1325
        #registrant so we are good to go
1326
1326
        mp.registrant = True
1330
1330
 
1331
1331
    def test_trigger_al_with_untrusted_people(self):
1332
1332
        mp = MagicMock()
1333
 
        #user_allowed_to_trigger_jobs now returns what it gets as an argument
1334
 
        #(see the lambda in constructor)
 
1333
        #users_allowed_to_trigger_jobs now returns True if any argument
 
1334
        #evaluates to True.  (See the lambda in the constructor.)
1335
1335
        #in this case none of the persons are trusted and therefore
1336
1336
        #we should stop and testing_in_progress shouldn't be executed at all
1337
1337
        mp.registrant = False