Esempio n. 1
0
    def test_initialize_from_list(self):
        """ Define a TestTriggerParameterizedBuildPipeline from a plain list of
        TemplateJob objects.
        """
        p = pipeline.TriggerParameterizedBuildPipeline([self.j1, self.j2])

        self.assertTrue((self.j1 in p))
        self.assertTrue((self.j2 in p))
Esempio n. 2
0
    def test_multiple_downstreams(self):
        """ Show that custom Trigger Parameterized Build settings can be
        defined when constructing the pipeline.
        """
        p = pipeline.TriggerParameterizedBuildPipeline()
        p.append(self.j1)
        p.append([self.j2, self.j3])

        p.render({
            "project": "meow",
        })

        tpb1 = self.j1.publishers[0]['trigger-parameterized-builds']
        self.assertTrue('meow__bitter' in tpb1[0]['project'])
        self.assertTrue('meow__sour' in tpb1[0]['project'])
Esempio n. 3
0
    def test_jobs_connected(self):
        """ Show that on reification of the TriggerParameterizedBuildPipeline
        object, successive jobs become connected using the Trigger
        Parameterized Builds Jenkins plugin.
        """
        p = pipeline.TriggerParameterizedBuildPipeline()
        p.append(self.j1)
        p.append(self.j2)
        p.append(self.j3)

        p.render({
            "project": "meow",
        })
        logging.debug(pprint.pformat(p))

        tpb1 = self.j1.publishers[0]['trigger-parameterized-builds']
        tpb2 = self.j2.publishers[0]['trigger-parameterized-builds']
        self.assertEqual(tpb1[0]['project'], 'meow__bitter')
        self.assertEqual(tpb2[0]['project'], 'meow__sour')
Esempio n. 4
0
    def test_default_tpb_settings(self):
        """ Validate default Trigger Paramterized Build settings.
        """
        p = pipeline.TriggerParameterizedBuildPipeline()
        p.append(self.j1)
        p.append(self.j2)

        p.render({
            "project": "meow",
        })

        correct_values = [
            ('fail-on-missing', True),
            ('current-parameters', True),
            ('trigger-with-no-params', True),
        ]

        tpb_params = self.j1.publishers[0]['trigger-parameterized-builds'][0]
        for param_name, correct_value in correct_values:
            self.assertEqual(tpb_params[param_name], correct_value)
Esempio n. 5
0
    def test_custom_tpb_settings(self):
        """ Show that custom Trigger Parameterized Build settings can be
        defined when constructing the pipeline.
        """
        p = pipeline.TriggerParameterizedBuildPipeline()

        custom_tpb_values = [
            ('fail-on-missing', False),
            ('current-parameters', False),
            ('trigger-with-no-params', False),
            ('property-file', 'custom.props'),
        ]
        p.append((self.j1, custom_tpb_values))
        p.append(self.j2)

        p.render({
            "project": "meow",
        })

        tpb_params = self.j1.publishers[0]['trigger-parameterized-builds'][0]
        for param_name, correct_value in custom_tpb_values:
            self.assertEqual(tpb_params[param_name], correct_value)
Esempio n. 6
0
    def test_multiple_downstreams_followed_by_single(self):
        """ Show that custom Trigger Parameterized Build settings can be
        defined when constructing the pipeline.
        """
        j4 = job.TemplateJob(self.j3)
        j4['qualifier'] = 'salty'
        p = pipeline.TriggerParameterizedBuildPipeline()
        p.append(self.j1)
        p.append([self.j2, self.j3])
        p.append(j4)

        p.render({
            "project": "meow",
        })

        tpb1 = self.j1.publishers[0]['trigger-parameterized-builds']
        tpb2 = self.j2.publishers[0]['trigger-parameterized-builds']

        self.assertTrue('meow__bitter' in tpb1[0]['project'])
        self.assertTrue('meow__sour' in tpb1[0]['project'])
        self.assertTrue('meow__salty' in tpb2[0]['project'])
        self.assertTrue('publishers' not in self.j3)