[Buildbot] #3346: web change_hook::base NOT accept unicode parameters

Buildbot trac trac at buildbot.net
Thu Aug 27 14:26:34 UTC 2015


#3346: web change_hook::base NOT accept unicode parameters
--------------------+-----------------------
Reporter:  evgeniy  |      Owner:
    Type:  defect   |     Status:  new
Priority:  major    |  Milestone:  undecided
 Version:  0.8.12   |   Keywords:
--------------------+-----------------------
 In master.cfg I have these lines:

 {{{
 c['status'].append(html.WebStatus(http_port=8017,allowForce=True,
                                   change_hook_dialects = {
                                       'base': True
                                   }
                               ))
 }}}

 to trigger build I try such code:
 {{{
 ./post_build_request.py -v --repository 'repo_url'  --project 'repo'
 --category  release  -w  evgeniy  -R
 e8a628fefe4a28594543ed5b4d0dd78af8d54013  -c 'Коментарий'  -b  master  -H
 localhost:8017  -u  /change_hook/base
 }}}

 And I got such errors in twistd.log:
 > sqlalchemy.exc.ProgrammingError: (ProgrammingError)
 > You must not use 8-bit bytestrings unless you use a
 > text_factory that can interpret 8-bit bytestrings
 > (like text_factory = str). It is highly recommended
 > that you instead just switch your application to
 > Unicode strings. u'INSERT INTO changes (author,
 > comments, is_dir, branch, revision, revlink,
 > when_timestamp, category, repository, codebase,
 > project)

 I fixed it with such change in source code:

 {{{
 diff --git a/master/buildbot/www/hooks/base.py
 b/master/buildbot/www/hooks/base.py
 index f4b18d0..dfc6b6e 100644
 --- a/master/buildbot/www/hooks/base.py
 +++ b/master/buildbot/www/hooks/base.py
 @@ -62,7 +62,7 @@ def getChanges(request, options=None):
      author = firstOrNothing(args.get('author'))
      if not author:
          author = firstOrNothing(args.get('who'))
 -    comments = firstOrNothing(args.get('comments'))
 +    comments = firstOrNothing(args.get('comments')).decode('utf-8')
      isdir = firstOrNothing(args.get('isdir', 0))
      branch = firstOrNothing(args.get('branch'))
      category = firstOrNothing(args.get('category'))
 }}}

--
Ticket URL: <http://trac.buildbot.net/ticket/3346>
Buildbot <http://buildbot.net/>
Buildbot: build/test automation


More information about the bugs mailing list