Resolve regression caused by I5369a0d35be4bf8b3b197a51e60aba21b5742cc7 preventing run_scripts() from successfully running against the remote Jenkins instance. Switching data to a dictionary and passing the script string without quote() appears to allow the script to successfully run. Add a magic string ')]}.' as an indicator of if the groovy script successfully passed or failed. In theory if the groovy script failed perhaps due to syntax error or some other reason the magic string will not be printed and we can assume failure. Change-Id: Ibaffb768ea82c76b44ec5a6cccde8563afe1783f Signed-off-by: Thanh Ha <zxiiro@linux.com>
86 lines
3.7 KiB
Python
86 lines
3.7 KiB
Python
from mock import patch
|
|
|
|
import jenkins
|
|
from tests.base import JenkinsTestBase
|
|
|
|
|
|
class JenkinsScriptTest(JenkinsTestBase):
|
|
|
|
@patch.object(jenkins.Jenkins, 'jenkins_open')
|
|
def test_run_script(self, jenkins_mock):
|
|
self.j.run_script(u'println(\"Hello World!\")')
|
|
|
|
self.assertEqual(
|
|
jenkins_mock.call_args[0][0].url,
|
|
self.make_url('scriptText'))
|
|
self._check_requests(jenkins_mock.call_args_list)
|
|
|
|
@patch.object(jenkins.Jenkins, 'jenkins_open')
|
|
def test_run_script_urlproof(self, jenkins_mock):
|
|
self.j.run_script(u'if (a == b && c ==d) { println(\"Yes\")}')
|
|
|
|
self.assertEqual(
|
|
jenkins_mock.call_args[0][0].url,
|
|
self.make_url('scriptText'))
|
|
self._check_requests(jenkins_mock.call_args_list)
|
|
|
|
@patch.object(jenkins.Jenkins, 'jenkins_open')
|
|
def test_install_plugin(self, jenkins_mock):
|
|
'''Installation of plugins is done with the run_script method
|
|
'''
|
|
j = jenkins.Jenkins(self.make_url(''), 'test', 'test')
|
|
j.install_plugin("jabber")
|
|
self.assertEqual(
|
|
jenkins_mock.call_args[0][0].url,
|
|
self.make_url('scriptText'))
|
|
self._check_requests(jenkins_mock.call_args_list)
|
|
|
|
@patch.object(jenkins.Jenkins, 'jenkins_open')
|
|
@patch.object(jenkins.Jenkins, 'run_script')
|
|
def test_install_plugin_with_dependencies(self, run_script_mock, jenkins_mock):
|
|
'''Verify install plugins with dependencies
|
|
'''
|
|
j = jenkins.Jenkins(self.make_url(''), 'test', 'test')
|
|
j.install_plugin("jabber")
|
|
self.assertEqual(len(run_script_mock.call_args_list), 2)
|
|
self.assertEqual(run_script_mock.call_args_list[0][0][0],
|
|
('Jenkins.instance.updateCenter.getPlugin(\"jabber\")'
|
|
'.getNeededDependencies().each{it.deploy()};Jenkins'
|
|
'.instance.updateCenter.getPlugin(\"jabber\").deploy();'))
|
|
self.assertEqual(run_script_mock.call_args_list[1][0][0],
|
|
('Jenkins.instance.updateCenter'
|
|
'.isRestartRequiredForCompletion()'))
|
|
|
|
@patch.object(jenkins.Jenkins, 'jenkins_open')
|
|
@patch.object(jenkins.Jenkins, 'run_script')
|
|
def test_install_plugin_without_dependencies(self, run_script_mock, jenkins_mock):
|
|
'''Verify install plugins without dependencies
|
|
'''
|
|
j = jenkins.Jenkins(self.make_url(''), 'test', 'test')
|
|
j.install_plugin("jabber", include_dependencies=False)
|
|
self.assertEqual(len(run_script_mock.call_args_list), 2)
|
|
self.assertEqual(run_script_mock.call_args_list[0][0][0],
|
|
('Jenkins.instance.updateCenter'
|
|
'.getPlugin(\"jabber\").deploy();'))
|
|
self.assertEqual(run_script_mock.call_args_list[1][0][0],
|
|
('Jenkins.instance.updateCenter'
|
|
'.isRestartRequiredForCompletion()'))
|
|
|
|
@patch.object(jenkins.Jenkins, 'jenkins_open')
|
|
@patch.object(jenkins.Jenkins, 'run_script')
|
|
def test_install_plugin_no_restart(self, run_script_mock, jenkins_mock):
|
|
'''Verify install plugin does not need a restart
|
|
'''
|
|
run_script_mock.return_value = u'Result: false\n'
|
|
j = jenkins.Jenkins(self.make_url(''), 'test', 'test')
|
|
self.assertFalse(j.install_plugin("jabber"))
|
|
|
|
@patch.object(jenkins.Jenkins, 'jenkins_open')
|
|
@patch.object(jenkins.Jenkins, 'run_script')
|
|
def test_install_plugin_restart(self, run_script_mock, jenkins_mock):
|
|
'''Verify install plugin needs a restart
|
|
'''
|
|
run_script_mock.return_value = u'Result: true\n'
|
|
j = jenkins.Jenkins(self.make_url(''), 'test', 'test')
|
|
self.assertTrue(j.install_plugin("jabber"))
|