python-jenkins/tests/jobs/test_build.py
Jan Priessnitz 44d211b90f
Allow use of unicode job names
Closes bug: #1713481
Signed-off-by: Jan Priessnitz <jan.priessnitz@gooddata.com>

Change-Id: I8a1ff4bf0f7711ab9c9b76f538411a854244283c
2018-06-17 15:28:46 +01:00

69 lines
2.9 KiB
Python

# -*- coding: utf-8 -*-
from mock import patch
from six.moves.urllib.parse import quote
from tests.helper import build_response_mock
from tests.jobs.base import JenkinsJobsTestBase
class JenkinsBuildJobTest(JenkinsJobsTestBase):
@patch('jenkins.requests.Session.send', autospec=True)
def test_simple(self, session_send_mock):
session_send_mock.return_value = build_response_mock(
302, {}, headers={'Location': self.make_url('/queue/item/25/')})
queue_id = self.j.build_job(u'Test Jøb')
self.assertEqual(session_send_mock.call_args[0][1].url,
self.make_url(quote(u'job/Test Jøb/build'.encode('utf8'))))
self.assertEqual(queue_id, 25)
@patch('jenkins.requests.Session.send', autospec=True)
def test_in_folder(self, session_send_mock):
session_send_mock.return_value = build_response_mock(
302, {}, headers={'Location': self.make_url('/queue/item/25/')})
queue_id = self.j.build_job(u'a Folder/Test Job')
self.assertEqual(session_send_mock.call_args[0][1].url,
self.make_url('job/a%20Folder/job/Test%20Job/build'))
self.assertEqual(queue_id, 25)
@patch('jenkins.requests.Session.send', autospec=True)
def test_with_token(self, session_send_mock):
session_send_mock.return_value = build_response_mock(
302, {}, headers={'Location': self.make_url('/queue/item/25/')})
queue_id = self.j.build_job(u'TestJob', token='some_token')
self.assertEqual(session_send_mock.call_args[0][1].url,
self.make_url('job/TestJob/build?token=some_token'))
self.assertEqual(queue_id, 25)
@patch('jenkins.requests.Session.send', autospec=True)
def test_in_folder_with_token(self, session_send_mock):
session_send_mock.return_value = build_response_mock(
302, {}, headers={'Location': self.make_url('/queue/item/25/')})
queue_id = self.j.build_job(u'a Folder/TestJob', token='some_token')
self.assertEqual(session_send_mock.call_args[0][1].url,
self.make_url('job/a%20Folder/job/TestJob/build?token=some_token'))
self.assertEqual(queue_id, 25)
@patch('jenkins.requests.Session.send', autospec=True)
def test_with_parameters_and_token(self, session_send_mock):
session_send_mock.return_value = build_response_mock(
302, {}, headers={'Location': self.make_url('/queue/item/25/')})
queue_id = self.j.build_job(
u'TestJob',
parameters={'when': 'now', 'why': 'because I felt like it'},
token='some_token')
self.assertTrue('token=some_token' in session_send_mock.call_args[0][1].url)
self.assertTrue('when=now' in session_send_mock.call_args[0][1].url)
self.assertTrue('why=because+I+felt+like+it' in session_send_mock.call_args[0][1].url)
self.assertEqual(queue_id, 25)