From dded51f472d7c05f97bf9c2c09b81758f666a3de Mon Sep 17 00:00:00 2001 From: Aleksey Maksimov Date: Fri, 28 Jun 2013 13:51:17 +0800 Subject: [PATCH] Convert config to str if it is unicode --- jenkinsapi/jenkins.py | 2 ++ jenkinsapi/job.py | 2 ++ jenkinsapi/utils/requester.py | 3 ++- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/jenkinsapi/jenkins.py b/jenkinsapi/jenkins.py index 6999627..66e6585 100644 --- a/jenkinsapi/jenkins.py +++ b/jenkinsapi/jenkins.py @@ -114,6 +114,8 @@ class Jenkins(JenkinsBase): return self[jobname] params = {'name': jobname} + if isinstance(config, unicode): + config = str(config) self.requester.post_xml_and_confirm_status(self.get_create_url(), data=config, params=params) self.poll() if not self.has_job(jobname): diff --git a/jenkinsapi/job.py b/jenkinsapi/job.py index ab32a53..5ef35fe 100644 --- a/jenkinsapi/job.py +++ b/jenkinsapi/job.py @@ -401,6 +401,8 @@ class Job(JenkinsBase, MutableJenkinsThing): Also refresh the ElementTree object since the config has changed """ url = self.get_config_xml_url() + if isinstance(config, unicode): + config = str(config) response = self.jenkins.requester.post_url(url, params={}, data=config) self._element_tree = ET.fromstring(config) return response.text diff --git a/jenkinsapi/utils/requester.py b/jenkinsapi/utils/requester.py index cf62f61..f026bc1 100644 --- a/jenkinsapi/utils/requester.py +++ b/jenkinsapi/utils/requester.py @@ -57,7 +57,8 @@ class Requester(object): def post_and_confirm_status(self, url, params=None, data=None, headers=None, valid=None): valid = valid or self.VALID_STATUS_CODES assert isinstance(data, ( - str, dict)), "Unexpected data type: %s" % repr(data) + str, dict)), \ + "Unexpected type of parameter 'data': %s. Expected (str, dict)" % type(data) if not headers: headers = {'Content-Type': 'application/x-www-form-urlencoded'} -- 2.34.1