Add a jobs_count method

The jobs_count method will return the total number of jobs on the
jenkins server.

Change-Id: I21e873646ed943d4fb4fdd61bd3b7d420fa1da55
This commit is contained in:
Khai Do
2015-02-13 09:34:25 -08:00
parent c5039432bb
commit 8a099b7429
2 changed files with 19 additions and 0 deletions

View File

@@ -544,6 +544,13 @@ class Jenkins(object):
if self.get_job_name(name) == name:
return True
def jobs_count(self):
'''Get the number of jobs on the Jenkins server
:returns: Total number of jobs, ``int``
'''
return len(self.get_jobs())
def assert_job_exists(self, name,
exception_message='job[%s] does not exist'):
'''Raise an exception if a job does not exist

View File

@@ -650,6 +650,18 @@ class JenkinsTest(unittest.TestCase):
'Error communicating with server[http://example.com/]:'
' empty response')
@patch.object(jenkins.Jenkins, 'jenkins_open')
def test_jobs_count(self, jenkins_mock):
jobs = [
{u'url': u'http://localhost:8080/job/guava/', u'color': u'notbuilt', u'name': u'guava'},
{u'url': u'http://localhost:8080/job/kiwi/', u'color': u'blue', u'name': u'kiwi'},
{u'url': u'http://localhost:8080/job/lemon/', u'color': u'red', u'name': u'lemon'}
]
job_info_to_return = {u'jobs': jobs}
jenkins_mock.return_value = json.dumps(job_info_to_return)
j = jenkins.Jenkins('http://example.com/', 'test', 'test')
self.assertEqual(j.jobs_count(), 3)
@patch.object(jenkins.Jenkins, 'jenkins_open')
def test_get_jobs(self, jenkins_mock):
jobs = {