mock_requester = Requester(username='foouser', password='foopassword')
mock_requester.get_url = mock.MagicMock(return_value='')
J = Jenkins('http://localhost:8080/',
- username='foouser', password='foopassword',
- requester=mock_requester)
- J.reload()
-
- @mock.patch.object(Jenkins, '_poll')
- def test_unauthorised_reload(self, _poll):
- def fail_get_url(url):
- raise urllib2.HTTPError(url=url, code=403,
- msg='You are not authorized to reload this server',
- hdrs=None, fp=None)
-
- _poll.return_value = {}
- mock_requester = Requester(username='foouser', password='foopassword')
- mock_requester.get_url = mock.MagicMock(return_value='',
- side_effect=fail_get_url)
- J = Jenkins('http://localhost:8080/',
- username='foouser', password='foopassword',
- requester=mock_requester)
- with self.assertRaises(NotAuthorized) as na:
- J.reload()
-
- self.assertEquals(na.exception.message,
- 'You are not authorized to reload this server')
-
- @mock.patch.object(Jenkins, '_poll')
- def test_httperror_reload(self, _poll):
- def fail_get_url(url):
- raise urllib2.HTTPError(url=url, code=500,
- msg='Because I said so!', hdrs=None, fp=None)
-
- _poll.return_value = {}
- mock_requester = Requester(username='foouser', password='foopassword')
- mock_requester.get_url = mock.MagicMock(return_value='',
- side_effect=fail_get_url)
- J = Jenkins('http://localhost:8080/',
- username='foouser', password='foopassword',
+ username='foouser', password='foopassword',
requester=mock_requester)
- with self.assertRaises(urllib2.HTTPError) as ar:
- J.reload()
- http_error = ar.exception
- self.assertEquals(http_error.code, 500)
+ J.poll()
+
+# TODO: Refactor this to use Requests, not urllib2
+ # @mock.patch.object(Jenkins, '_poll')
+ # def test_unauthorised_reload(self, _poll):
+ # def fail_get_url(url):
+ # raise urllib2.HTTPError(url=url, code=403,
+ # msg='You are not authorized to reload this server',
+ # hdrs=None, fp=None)
+
+ # _poll.return_value = {}
+ # mock_requester = Requester(username='foouser', password='foopassword')
+ # mock_requester.get_url = mock.MagicMock(return_value='',
+ # side_effect=fail_get_url)
+ # J = Jenkins('http://localhost:8080/',
+ # username='foouser', password='foopassword',
+ # requester=mock_requester)
+ # with self.assertRaises(NotAuthorized) as na:
+ # J.reload()
+
+ # self.assertEquals(na.exception.message,
+ # 'You are not authorized to reload this server')
+
+ # @mock.patch.object(Jenkins, '_poll')
+ # def test_httperror_reload(self, _poll):
+ # def fail_get_url(url):
+ # raise urllib2.HTTPError(url=url, code=500,
+ # msg='Because I said so!', hdrs=None, fp=None)
+
+ # _poll.return_value = {}
+ # mock_requester = Requester(username='foouser', password='foopassword')
+ # mock_requester.get_url = mock.MagicMock(return_value='',
+ # side_effect=fail_get_url)
+ # J = Jenkins('http://localhost:8080/',
+ # username='foouser', password='foopassword',
+ # requester=mock_requester)
+ # with self.assertRaises(urllib2.HTTPError) as ar:
+ # J.poll()
+ # http_error = ar.exception
+ # self.assertEquals(http_error.code, 500)
@mock.patch.object(JenkinsBase, '_poll')
@mock.patch.object(Jenkins, '_poll')
@mock.patch.object(Job, '_poll')
def test_get_jobs(self, _base_poll, _poll, _job_poll):
_poll.return_value = {'jobs': [
- {'name': 'job_one',
+ {'name': 'job_one',
'url': 'http://localhost:8080/job_one'},
- {'name': 'job_two',
+ {'name': 'job_two',
'url': 'http://localhost:8080/job_two'},
]}
_base_poll.return_value = _poll.return_value
username='foouser', password='foopassword')
for idx, (job_name, job) in enumerate(J.get_jobs()):
self.assertEquals(
- job_name, _poll.return_value['jobs'][idx]['name'])
+ job_name, _poll.return_value['jobs'][idx]['name'])
self.assertTrue(isinstance(job, Job))
self.assertEquals(
job.name, _poll.return_value['jobs'][idx]['name'])
@mock.patch.object(Job, '_poll')
def test_get_jobs_info(self, _base_poll, _poll, _job_poll):
_poll.return_value = {'jobs': [
- {'name': 'job_one',
+ {'name': 'job_one',
'url': 'http://localhost:8080/job_one'},
- {'name': 'job_two',
+ {'name': 'job_two',
'url': 'http://localhost:8080/job_two'},
]}
_base_poll.return_value = _poll.return_value
username='foouser', password='foopassword')
for idx, (url, job_name) in enumerate(J.get_jobs_info()):
self.assertEquals(
- job_name, _poll.return_value['jobs'][idx]['name'])
+ job_name, _poll.return_value['jobs'][idx]['name'])
self.assertEquals(
url, _poll.return_value['jobs'][idx]['url'])
@mock.patch.object(Job, '_poll')
def test_get_jobs_list(self, _base_poll, _poll, _job_poll):
_poll.return_value = {'jobs': [
- {'name': 'job_one',
+ {'name': 'job_one',
'url': 'http://localhost:8080/job_one'},
- {'name': 'job_two',
+ {'name': 'job_two',
'url': 'http://localhost:8080/job_two'},
]}
_base_poll.return_value = _poll.return_value
username='foouser', password='foopassword')
for idx, job_name in enumerate(J.get_jobs_list()):
self.assertEquals(
- job_name, _poll.return_value['jobs'][idx]['name'])
+ job_name, _poll.return_value['jobs'][idx]['name'])
@mock.patch.object(JenkinsBase, '_poll')
@mock.patch.object(Jenkins, '_poll')
@mock.patch.object(Job, '_poll')
def test_get_job(self, _base_poll, _poll, _job_poll):
_poll.return_value = {'jobs': [
- {'name': 'job_one',
+ {'name': 'job_one',
'url': 'http://localhost:8080/job_one'},
- {'name': 'job_two',
+ {'name': 'job_two',
'url': 'http://localhost:8080/job_two'},
]}
_base_poll.return_value = _poll.return_value
@mock.patch.object(Job, '_poll')
def test_has_job(self, _base_poll, _poll, _job_poll):
_poll.return_value = {'jobs': [
- {'name': 'job_one',
+ {'name': 'job_one',
'url': 'http://localhost:8080/job_one'},
- {'name': 'job_two',
+ {'name': 'job_two',
'url': 'http://localhost:8080/job_two'},
]}
_base_poll.return_value = _poll.return_value
@mock.patch.object(Job, '_poll')
def test_has_no_job(self, _base_poll, _poll, _job_poll):
_poll.return_value = {'jobs': [
- {'name': 'job_one',
+ {'name': 'job_one',
'url': 'http://localhost:8080/job_one'},
- {'name': 'job_two',
+ {'name': 'job_two',
'url': 'http://localhost:8080/job_two'},
]}
_base_poll.return_value = _poll.return_value
@mock.patch.object(Job, '_poll')
def test_create_dup_job(self, _base_poll, _poll, _job_poll):
_poll.return_value = {'jobs': [
- {'name': 'job_one',
+ {'name': 'job_one',
'url': 'http://localhost:8080/job_one'},
- {'name': 'job_two',
+ {'name': 'job_two',
'url': 'http://localhost:8080/job_two'},
]}
_base_poll.return_value = _poll.return_value
self.assertTrue(job.name=='job_one')
# Here we're going to test function, which is going to modify
- # Jenkins internal data. It calls for data once to check
+ # Jenkins internal data. It calls for data once to check
# if job already there, then calls again to see if job hs been created.
# So we need to create mock function, which
# will return different value per each call
create_job_returns = [
# This will be returned when job is not yet created
{'jobs': [
- {'name': 'job_one',
+ {'name': 'job_one',
'url': 'http://localhost:8080/job_one'},
- {'name': 'job_one',
+ {'name': 'job_one',
'url': 'http://localhost:8080/job_one'},
]},
# This to simulate that the job has been created
{'jobs': [
- {'name': 'job_one',
+ {'name': 'job_one',
'url': 'http://localhost:8080/job_one'},
- {'name': 'job_two',
+ {'name': 'job_two',
'url': 'http://localhost:8080/job_two'},
- {'name': 'job_new',
+ {'name': 'job_new',
'url': 'http://localhost:8080/job_new'},
]}
]
def test_create_new_job_fail(self, _base_poll, _poll, _job_poll):
_job_poll.return_value = {}
_poll.return_value = {'jobs': [
- {'name': 'job_one',
+ {'name': 'job_one',
'url': 'http://localhost:8080/job_one'},
- {'name': 'job_one',
+ {'name': 'job_one',
'url': 'http://localhost:8080/job_one'},
]}
_base_poll.return_value = _poll.return_value
requester=mock_requester)
with self.assertRaises(JenkinsAPIException) as ar:
- job = J.create_job('job_new', None)
+ J.create_job('job_new', None)
self.assertEquals(ar.exception.message, 'Cannot create job job_new')
self.assertEquals(J.baseurl, 'http://localhost:8080')
self.assertEquals(
J.get_base_server_url(), 'http://localhost:8080')
-
-class TestJenkinsViews(unittest.TestCase):
-
- @mock.patch.object(Jenkins, '_poll')
- @mock.patch.object(JenkinsBase, '_poll')
- def test_create_view(self, _poll, _base_poll):
- mock_requester = Requester(username='foouser', password='foopassword')
- mock_requester.get_url = mock.MagicMock(return_value='<div/>')
- mock_requester.post_url = mock.MagicMock(return_value='')
- _poll.return_value = {'views': [
- {'name': 'All',
- 'url': 'http://localhost:8080/views/All'},
- {'name': 'NewView',
- 'url': 'http://localhost:8080/views/NewView'},
- ]}
- _base_poll.return_value = _poll.return_value
- J = Jenkins('http://localhost:8080/',
- username='foouser', password='foopassword',
- requester=mock_requester)
- new_view = J.create_view(str_view_name='NewView', person=None)
- self.assertTrue(isinstance(new_view, View))
- self.assertEquals(new_view.baseurl,
- 'http://localhost:8080/views/NewView')
-
- @mock.patch.object(Jenkins, '_poll')
- def test_create_existing_view(self, _poll):
- mock_requester = Requester(username='foouser', password='foopassword')
- mock_requester.get_url = mock.MagicMock(
- return_value='A view already exists')
- J = Jenkins('http://localhost:8080/',
- username='foouser', password='foopassword',
- requester=mock_requester)
- new_view = J.create_view(str_view_name='NewView', person=None)
- self.assertFalse(isinstance(new_view, View))
-
- @mock.patch.object(Jenkins, '_poll')
- def test_delete_inexisting_view(self, _poll):
- mock_requester = Requester(username='foouser', password='foopassword')
- mock_requester.get_url = mock.MagicMock(return_value='<div/>')
- J = Jenkins('http://localhost:8080/',
- username='foouser', password='foopassword',
- requester=mock_requester)
- delete_result = J.delete_view(str_view_name='NewView', person=None)
- self.assertFalse(delete_result)
-
- @mock.patch.object(Jenkins, '_poll')
- def test_delete_existing_view(self, _poll):
- mock_requester = Requester(username='foouser', password='foopassword')
- mock_requester.get_url = mock.MagicMock(return_value='View exists')
- _poll.return_value = {'views': [
- {'name': 'All',
- 'url': 'http://localhost:8080/views/All'},
- ]}
- J = Jenkins('http://localhost:8080/',
- username='foouser', password='foopassword',
- requester=mock_requester)
- delete_result = J.delete_view(str_view_name='NewView', person=None)
- self.assertTrue(delete_result)
if __name__ == '__main__':