class QueryJenkinsTest(unittest.TestCase): """Test Jenkins toolox class implemention""" JENKINS_TEST_SERVER = "http://127.0.0.1" JENKINS_TEST_JOB = "testjob" DATE_FORMAT = "%Y.%m.%d" TEST_VALUES = { "2016.02.08": { "num_tickets": 2, "tickets_jql": "" }, "2016.02.05": { "num_tickets": 3, "tickets_jql": "" }, "2016.02.09": { "num_tickets": 4, "tickets_jql": "" } } _qjinstance = None def setUp(self): self._qjinstance = QueryJenkins() @mock.patch.object(Jenkins, "_poll") @mock.patch.object(Jenkins, "get_job") def test_get_builds_job(self, mock_getjob, mock_poll): """Test call to get_builds method""" mock_poll.return_value = {} builds = self._qjinstance.get_builds( self.JENKINS_TEST_SERVER, self.JENKINS_TEST_JOB, 10 ) self.assertEqual(builds, [], "get_builds returns a list") mock_getjob.assert_called_once_with(self.JENKINS_TEST_JOB) @mock.patch("app.queryjenkins.xlsxwriter") def test_export_as_excel_file(self, mock_xlswriter): """Tests export of the results into an Excel file""" self._qjinstance.export_as_excel_file("test.xlsx", []) mock_xlswriter.Workbook.assert_called_once_with("test.xlsx")
def main(): """Orchestrate our toolbox to run the Jenkins analysis""" argvdict = _parse_arguments() qjinstance = QueryJenkins() buildlist = qjinstance.get_builds( argvdict["server"], argvdict["jobname"], NUMBER_OF_PAST_BUILDS) allentries = AllJenkinsDayEntries() for build in buildlist: dayentry = JenkinsDayEntry() dayentry.date = build.get_timestamp().date() dayentry.tickets = qjinstance.get_ticket_tumbers(build) allentries.add(dayentry) per_day_values = allentries.entries_with_empty_days() qjinstance.export_as_excel_file("buildtickets.xlsx", per_day_values)
def setUp(self): self._qjinstance = QueryJenkins()