python-jenkins-developers team mailing list archive
-
python-jenkins-developers team
-
Mailing list archive
-
Message #00107
[Merge] lp:~msabramo/python-jenkins/add_tests into lp:python-jenkins
Marc Abramowitz has proposed merging lp:~msabramo/python-jenkins/add_tests into lp:python-jenkins.
Requested reviews:
Python Jenkins Developers (python-jenkins-developers)
For more details, see:
https://code.launchpad.net/~msabramo/python-jenkins/add_tests/+merge/214671
Add a bunch of tests to improve coverage
--
https://code.launchpad.net/~msabramo/python-jenkins/add_tests/+merge/214671
Your team Python Jenkins Developers is requested to review the proposed merge of lp:~msabramo/python-jenkins/add_tests into lp:python-jenkins.
=== modified file 'tests/test_jenkins.py'
--- tests/test_jenkins.py 2012-05-17 15:24:23 +0000
+++ tests/test_jenkins.py 2014-04-08 07:06:23 +0000
@@ -1,3 +1,4 @@
+import json
import unittest
from mock import patch
@@ -17,3 +18,125 @@
self.assertEqual(jenkins_mock.call_args[0][0].get_full_url(),
u'http://example.com/job/Test%20Job/config.xml')
+
+ @patch.object(jenkins.Jenkins, 'jenkins_open')
+ def test_get_build_info(self, jenkins_mock):
+ """
+ The job name parameter specified should be urlencoded properly.
+ """
+ build_info_to_return = {
+ u'building': False,
+ u'msg': u'test',
+ u'revision': 66,
+ u'user': u'unknown'
+ }
+ jenkins_mock.return_value = json.dumps(build_info_to_return)
+ j = jenkins.Jenkins('http://example.com/', 'test', 'test')
+
+ build_info = j.get_build_info(u'TestJob', number=52)
+
+ self.assertEqual(build_info, build_info_to_return)
+ self.assertEqual(jenkins_mock.call_args[0][0].get_full_url(),
+ u'http://example.com/job/TestJob/52/api/json?depth=0')
+
+ @patch.object(jenkins.Jenkins, 'jenkins_open')
+ def test_get_job_info(self, jenkins_mock):
+ """
+ The job name parameter specified should be urlencoded properly.
+ """
+ job_info_to_return = {
+ u'building': False,
+ u'msg': u'test',
+ u'revision': 66,
+ u'user': u'unknown'
+ }
+ jenkins_mock.return_value = json.dumps(job_info_to_return)
+ j = jenkins.Jenkins('http://example.com/', 'test', 'test')
+
+ job_info = j.get_job_info(u'TestJob')
+
+ self.assertEqual(job_info, job_info_to_return)
+ self.assertEqual(jenkins_mock.call_args[0][0].get_full_url(),
+ u'http://example.com/job/TestJob/api/json?depth=0')
+
+ @patch.object(jenkins.Jenkins, 'jenkins_open')
+ def test_get_info(self, jenkins_mock):
+ job_info_to_return = {
+ u'jobs': {
+ u'url': u'http://your_url_here/job/my_job/',
+ u'color': u'blue',
+ u'name': u'my_job',
+ }
+ }
+ jenkins_mock.return_value = json.dumps(job_info_to_return)
+ j = jenkins.Jenkins('http://example.com/', 'test', 'test')
+
+ job_info = j.get_info()
+
+ self.assertEqual(job_info, job_info_to_return)
+ self.assertEqual(jenkins_mock.call_args[0][0].get_full_url(),
+ u'http://example.com/api/json')
+
+ @patch.object(jenkins.Jenkins, 'jenkins_open')
+ def test_get_job_name(self, jenkins_mock):
+ """
+ The job name parameter specified should be urlencoded properly.
+ """
+ job_name_to_return = {u'name': 'TestJob'}
+ jenkins_mock.return_value = json.dumps(job_name_to_return)
+ j = jenkins.Jenkins('http://example.com/', 'test', 'test')
+
+ job_name = j.get_job_name(u'TestJob')
+
+ self.assertEqual(job_name, 'TestJob')
+ self.assertEqual(jenkins_mock.call_args[0][0].get_full_url(),
+ u'http://example.com/job/TestJob/api/json?tree=name')
+
+ @patch.object(jenkins.Jenkins, 'jenkins_open')
+ def test_cancel_queue(self, jenkins_mock):
+ job_name_to_return = {u'name': 'TestJob'}
+ jenkins_mock.return_value = json.dumps(job_name_to_return)
+ j = jenkins.Jenkins('http://example.com/', 'test', 'test')
+
+ j.cancel_queue(52)
+
+ self.assertEqual(jenkins_mock.call_args[0][0].get_full_url(),
+ u'http://example.com/queue/item/52/cancelQueue')
+
+ @patch.object(jenkins.Jenkins, 'jenkins_open')
+ def test_get_queue_info(self, jenkins_mock):
+ """
+ The job name parameter specified should be urlencoded properly.
+ """
+ queue_info_to_return = {
+ 'items': {
+ u'task': {
+ u'url': u'http://your_url/job/my_job/',
+ u'color': u'aborted_anime',
+ u'name': u'my_job'
+ },
+ u'stuck': False,
+ u'actions': [
+ {
+ u'causes': [
+ {
+ u'shortDescription': u'Started by timer',
+ },
+ ],
+ },
+ ],
+ u'buildable': False,
+ u'params': u'',
+ u'buildableStartMilliseconds': 1315087293316,
+ u'why': u'Build #2,532 is already in progress (ETA:10 min)',
+ u'blocked': True,
+ }
+ }
+ jenkins_mock.return_value = json.dumps(queue_info_to_return)
+ j = jenkins.Jenkins('http://example.com/', 'test', 'test')
+
+ queue_info = j.get_queue_info()
+
+ self.assertEqual(queue_info, queue_info_to_return['items'])
+ self.assertEqual(jenkins_mock.call_args[0][0].get_full_url(),
+ u'http://example.com/queue/api/json?depth=0')
References