On 07/22/2015 04:59 AM, Joe Orton wrote:
On Mon, Jul 13, 2015 at 10:26:36AM +0300, Alexander Todorov wrote:
...
>> data must be a byte string
>> $ rpm -qf /usr/bin/bugzilla
>> python-bugzilla-1.2.1-1.fc22.noarch
>>
>> Any help appreciated!
>>
>
> Hi Joe,
> check out this bug:
>
https://bugzilla.redhat.com/show_bug.cgi?id=1241561
It's not that. I'm confused though - is everybody else using
python-bugzilla successfully on Fedora 22, or has nobody else tried it?
I tracked down the error, anyway.
The exception originates from pyOpenSSL's Connection.send(), which has:
if not isinstance(buf, bytes):
raise TypeError("data must be a byte string")
The reason is that the passed-in buffer is a unicode object rather than
a byte string.
python-bugzilla's RequestsTransport.request() does this, which I don't
understand:
# Needed for python-requests < 2.0 with python3, otherwise we get
# Content-Type error later for the POST request
request_body = request_body.decode('utf-8')
Is the problem that some versions of python-requests want a unicode
object and some want a UTF-8-encoded string (str object)? Flipping the
decode to an encode fixes the problem for me, ensuring request_body is a
str object not a unicode object. For reference, package versions:
python-requests-2.7.0-1.fc22.noarch
python-bugzilla-1.2.1-1.fc22.noarch
pyOpenSSL-0.14-3.fc22.noarch
$ rpm -q python-requests python-bugzilla pyOpenSSL
python-requests-2.7.0-1.fc22.noarch
python-bugzilla-1.2.1-1.fc22.noarch
pyOpenSSL-0.14-3.fc22.noarch
$ bugzilla --debug login jorton foo
[10:52:25] INFO (bugzilla:1160) Connecting to
https://bugzilla.redhat.com/xmlrpc.cgi
[10:52:25] INFO (bugzilla:1163) Autodetecting Bugzilla type
[10:52:25] DEBUG (__init__:39) Detecting subclass for
https://bugzilla.redhat.com/xmlrpc.cgi
[10:52:25] INFO (__init__:46) Using RHBugzilla for URL containing
bugzilla.redhat.com
[10:52:25] INFO (__init__:114) Chose subclass RHBugzilla v0.1
[10:52:25] DEBUG (base:420) Using tokenfile=/home/crobinso/.bugzillatoken
[10:52:25] DEBUG (base:537) Using cookiefile=/home/crobinso/.bugzillacookies
[10:52:25] INFO (base:676) Using username/password for authentication
[10:52:25] INFO (base:684) Logging in...
Login failed: The username or password you entered is not valid.
I'm guessing you have some outdated python dep somewhere in your python path.
Check python -c 'import sys; print sys.path' non-system paths for any stale
installs.
- Cole