← Back to team overview

python-jenkins-developers team mailing list archive

[Bug 1928782] [NEW] Get error when add crumb to request

 

Public bug reported:

When install python-jenkins 1.7.0, requests 2.25.1, I fail to call
delete_build function.

>>> jenkins_server.delete_build('test', 8)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/root/Jenkins-venv/lib64/python3.7/site-packages/jenkins/__init__.py", line 1416, in delete_build
    self._build_url(DELETE_BUILD, locals()), b''))
  File "/root/Jenkins-venv/lib64/python3.7/site-packages/jenkins/__init__.py", line 557, in jenkins_open
    return self.jenkins_request(req, add_crumb, resolve_auth).text
  File "/root/Jenkins-venv/lib64/python3.7/site-packages/jenkins/__init__.py", line 573, in jenkins_request
    self.maybe_add_crumb(req)
  File "/root/Jenkins-venv/lib64/python3.7/site-packages/jenkins/__init__.py", line 379, in maybe_add_crumb
    req.headers[self.crumb['crumbRequestField']] = self.crumb['crumb']
TypeError: 'bytes' object does not support item assignment

The error is caused by code:
    def delete_build(self, name, number):
        """Delete a Jenkins build.

        :param name: Name of Jenkins job, ``str``
        :param number: Jenkins build number for the job, ``int``
        """
        folder_url, short_name = self._get_job_folder(name)
        import pdb
        pdb.set_trace()
        self.jenkins_open(requests.Request('POST',
                          self._build_url(DELETE_BUILD, locals()), b''))

It add b'' as a parameter of requests.Request. This parameter isn't
helpful, and is passed to requests.Request as its heads in requests
2.25.1. I think we should remove it.

** Affects: python-jenkins
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Python
Jenkins Developers, which is subscribed to Python Jenkins.
https://bugs.launchpad.net/bugs/1928782

Title:
  Get error when add crumb to request

Status in Python Jenkins:
  New

Bug description:
  When install python-jenkins 1.7.0, requests 2.25.1, I fail to call
  delete_build function.

  >>> jenkins_server.delete_build('test', 8)
  Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    File "/root/Jenkins-venv/lib64/python3.7/site-packages/jenkins/__init__.py", line 1416, in delete_build
      self._build_url(DELETE_BUILD, locals()), b''))
    File "/root/Jenkins-venv/lib64/python3.7/site-packages/jenkins/__init__.py", line 557, in jenkins_open
      return self.jenkins_request(req, add_crumb, resolve_auth).text
    File "/root/Jenkins-venv/lib64/python3.7/site-packages/jenkins/__init__.py", line 573, in jenkins_request
      self.maybe_add_crumb(req)
    File "/root/Jenkins-venv/lib64/python3.7/site-packages/jenkins/__init__.py", line 379, in maybe_add_crumb
      req.headers[self.crumb['crumbRequestField']] = self.crumb['crumb']
  TypeError: 'bytes' object does not support item assignment

  The error is caused by code:
      def delete_build(self, name, number):
          """Delete a Jenkins build.

          :param name: Name of Jenkins job, ``str``
          :param number: Jenkins build number for the job, ``int``
          """
          folder_url, short_name = self._get_job_folder(name)
          import pdb
          pdb.set_trace()
          self.jenkins_open(requests.Request('POST',
                            self._build_url(DELETE_BUILD, locals()), b''))

  It add b'' as a parameter of requests.Request. This parameter isn't
  helpful, and is passed to requests.Request as its heads in requests
  2.25.1. I think we should remove it.

To manage notifications about this bug go to:
https://bugs.launchpad.net/python-jenkins/+bug/1928782/+subscriptions


Follow ups