Merge "Adds assert_node_exists()"
This commit is contained in:
@@ -516,6 +516,17 @@ class Jenkins(object):
|
|||||||
except JenkinsException:
|
except JenkinsException:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def assert_node_exists(self, name,
|
||||||
|
exception_message='node[%s] does not exist'):
|
||||||
|
'''
|
||||||
|
:param name: Name of Jenkins node, ``str``
|
||||||
|
:param exception_message: Message to use for the exception. Formatted
|
||||||
|
with ``name``
|
||||||
|
:throws: :class:`JenkinsException` whenever the node does not exist
|
||||||
|
'''
|
||||||
|
if not self.node_exists(name):
|
||||||
|
raise JenkinsException(exception_message % name)
|
||||||
|
|
||||||
def delete_node(self, name):
|
def delete_node(self, name):
|
||||||
'''Delete Jenkins node permanently.
|
'''Delete Jenkins node permanently.
|
||||||
|
|
||||||
@@ -599,8 +610,7 @@ class Jenkins(object):
|
|||||||
self.jenkins_open(Request(
|
self.jenkins_open(Request(
|
||||||
self.server + CREATE_NODE % urlencode(params)))
|
self.server + CREATE_NODE % urlencode(params)))
|
||||||
|
|
||||||
if not self.node_exists(name):
|
self.assert_node_exists(name, 'create[%s] failed')
|
||||||
raise JenkinsException('create[%s] failed' % (name))
|
|
||||||
|
|
||||||
def get_build_console_output(self, name, number):
|
def get_build_console_output(self, name, number):
|
||||||
'''Get build console text.
|
'''Get build console text.
|
||||||
|
|||||||
@@ -824,6 +824,25 @@ class JenkinsTest(unittest.TestCase):
|
|||||||
str(context_manager.exception),
|
str(context_manager.exception),
|
||||||
'node[test_node] does not exist')
|
'node[test_node] does not exist')
|
||||||
|
|
||||||
|
@patch.object(jenkins.Jenkins, 'jenkins_open')
|
||||||
|
def test_assert_node_exists__node_missing(self, jenkins_mock):
|
||||||
|
jenkins_mock.side_effect = [None]
|
||||||
|
j = jenkins.Jenkins('http://example.com/', 'test', 'test')
|
||||||
|
|
||||||
|
with self.assertRaises(jenkins.JenkinsException) as context_manager:
|
||||||
|
j.assert_node_exists('NonExistentNode')
|
||||||
|
self.assertEqual(
|
||||||
|
str(context_manager.exception),
|
||||||
|
'node[NonExistentNode] does not exist')
|
||||||
|
|
||||||
|
@patch.object(jenkins.Jenkins, 'jenkins_open')
|
||||||
|
def test_assert_node_exists__node_exists(self, jenkins_mock):
|
||||||
|
jenkins_mock.side_effect = [
|
||||||
|
json.dumps({'name': 'ExistingNode'})
|
||||||
|
]
|
||||||
|
j = jenkins.Jenkins('http://example.com/', 'test', 'test')
|
||||||
|
j.assert_node_exists('ExistingNode')
|
||||||
|
|
||||||
@patch.object(jenkins.Jenkins, 'jenkins_open')
|
@patch.object(jenkins.Jenkins, 'jenkins_open')
|
||||||
def test_delete_node(self, jenkins_mock):
|
def test_delete_node(self, jenkins_mock):
|
||||||
node_info = {
|
node_info = {
|
||||||
|
|||||||
Reference in New Issue
Block a user