|
2 | 2 | import os |
3 | 3 | from argparse import Namespace |
4 | 4 | from xml.etree import ElementTree |
| 5 | +from datetime import datetime |
5 | 6 |
|
6 | 7 | from pyfakefs import fake_filesystem_unittest |
7 | 8 | import mock |
@@ -200,7 +201,57 @@ def test_info(self, patched_get_job_name, patched_get_job_info, patched_get_job_ |
200 | 201 | patched_get_job_config.return_value = EMPTY_SCM_XML |
201 | 202 | JenkinsCli(self.args).info(self.args) |
202 | 203 | arg = JenkinsCli.INFO_TEMPLATE % ('Not Built', 'Not Built', 'Not Built', 'Not Built', 'No', 'UnknownSCM', 'Unknown branch') |
203 | | - self.patched_print.assert_has_calls([mock.call(arg)]) |
| 204 | + self.patched_print.assert_called_once_with(arg) |
| 205 | + self.patched_print.reset_mock() |
| 206 | + |
| 207 | + ts = 1456870299 |
| 208 | + job_info = {'lastBuild': {'fullDisplayName': 'FDN (cur)', |
| 209 | + 'result': 'Done', |
| 210 | + 'timestamp': ts * 1000, |
| 211 | + 'building': True}, |
| 212 | + 'lastSuccessfulBuild': {'fullDisplayName': 'FDN (last)'}} |
| 213 | + patched_get_job_info.return_value = job_info |
| 214 | + patched_get_job_config.return_value = GIT_SCM_XML |
| 215 | + JenkinsCli(self.args).info(self.args) |
| 216 | + arg = JenkinsCli.INFO_TEMPLATE % ('FDN (cur)', 'Done', 'FDN (last)', datetime.fromtimestamp(ts), 'Yes', 'Git', 'cli-tests') |
| 217 | + self.patched_print.assert_called_once_with(arg) |
| 218 | + self.patched_print.reset_mock() |
| 219 | + |
| 220 | + job_info['building'] = False |
| 221 | + patched_get_job_info.return_value = job_info |
| 222 | + patched_get_job_config.return_value = HG_SCM_XML |
| 223 | + JenkinsCli(self.args).info(self.args) |
| 224 | + arg = JenkinsCli.INFO_TEMPLATE % ('FDN (cur)', 'Done', 'FDN (last)', datetime.fromtimestamp(ts), 'Yes', 'Mercurial', 'v123') |
| 225 | + self.patched_print.assert_called_once_with(arg) |
| 226 | + |
| 227 | + @mock.patch.object(jenkins.Jenkins, 'reconfig_job') |
| 228 | + @mock.patch.object(jenkins.Jenkins, 'get_job_config') |
| 229 | + @mock.patch.object(jenkins.Jenkins, 'get_job_name', return_value='Job1') |
| 230 | + def test_set_branch(self, patched_get_job_name, patched_get_job_config, patched_reconfig_job): |
| 231 | + patched_get_job_config.return_value = EMPTY_SCM_XML |
| 232 | + self.args.job_name = 'Job1' |
| 233 | + self.args.branch_name = 'b1' |
| 234 | + JenkinsCli(self.args).set_branch(self.args) |
| 235 | + self.assertFalse(patched_reconfig_job.called) |
| 236 | + self.patched_print.assert_called_once_with("Can't set branch name") |
| 237 | + self.patched_print.reset_mock() |
204 | 238 |
|
| 239 | + patched_get_job_config.return_value = GIT_SCM_XML |
| 240 | + JenkinsCli(self.args).set_branch(self.args) |
| 241 | + self.assertEqual(patched_reconfig_job.call_args[0][0], 'Job1') |
| 242 | + self.assertIn('b1', patched_reconfig_job.call_args[0][1]) |
| 243 | + self.assertNotIn('cli-tests', patched_reconfig_job.call_args[1]) |
| 244 | + self.patched_print.assert_called_once_with("Done") |
| 245 | + patched_reconfig_job.reset_mock() |
| 246 | + self.patched_print.reset_mock() |
| 247 | + |
| 248 | + patched_get_job_config.return_value = HG_SCM_XML |
| 249 | + JenkinsCli(self.args).set_branch(self.args) |
| 250 | + self.assertEqual(patched_reconfig_job.call_args[0][0], 'Job1') |
| 251 | + self.assertIn('b1', patched_reconfig_job.call_args[0][1]) |
| 252 | + self.assertNotIn('v123', patched_reconfig_job.call_args[1]) |
| 253 | + self.patched_print.assert_called_once_with("Done") |
| 254 | + patched_reconfig_job.reset_mock() |
| 255 | + self.patched_print.reset_mock() |
205 | 256 | if __name__ == '__main__': |
206 | 257 | unittest.main() |
0 commit comments