From: Ben Darnell Date: Sun, 29 Dec 2013 19:57:29 +0000 (-0500) Subject: Fixes for soon-to-be-released py3-compatible version of pycurl. X-Git-Tag: v3.2.0b1~14 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f5ac210298c9006e08284d5845fe661fe6f9be44;p=thirdparty%2Ftornado.git Fixes for soon-to-be-released py3-compatible version of pycurl. --- diff --git a/tornado/curl_httpclient.py b/tornado/curl_httpclient.py index cb97710a0..0df7a7eea 100644 --- a/tornado/curl_httpclient.py +++ b/tornado/curl_httpclient.py @@ -318,10 +318,12 @@ def _curl_setup_request(curl, request, buffer, headers): [native_str("%s: %s" % i) for i in request.headers.items()]) if request.header_callback: - curl.setopt(pycurl.HEADERFUNCTION, request.header_callback) + curl.setopt(pycurl.HEADERFUNCTION, + lambda line: request.header_callback(native_str(line))) else: curl.setopt(pycurl.HEADERFUNCTION, - lambda line: _curl_header_callback(headers, line)) + lambda line: _curl_header_callback(headers, + native_str(line))) if request.streaming_callback: write_function = request.streaming_callback else: diff --git a/tornado/test/curl_httpclient_test.py b/tornado/test/curl_httpclient_test.py index e9ba8a76c..faf6cdc79 100644 --- a/tornado/test/curl_httpclient_test.py +++ b/tornado/test/curl_httpclient_test.py @@ -2,6 +2,7 @@ from __future__ import absolute_import, division, print_function, with_statement from hashlib import md5 +from tornado.escape import utf8 from tornado.httpclient import HTTPRequest from tornado.stack_context import ExceptionStackContext from tornado.testing import AsyncHTTPTestCase @@ -51,10 +52,10 @@ class DigestAuthHandler(RequestHandler): assert param_dict['nonce'] == nonce assert param_dict['username'] == username assert param_dict['uri'] == self.request.path - h1 = md5('%s:%s:%s' % (username, realm, password)).hexdigest() - h2 = md5('%s:%s' % (self.request.method, - self.request.path)).hexdigest() - digest = md5('%s:%s:%s' % (h1, nonce, h2)).hexdigest() + h1 = md5(utf8('%s:%s:%s' % (username, realm, password))).hexdigest() + h2 = md5(utf8('%s:%s' % (self.request.method, + self.request.path))).hexdigest() + digest = md5(utf8('%s:%s:%s' % (h1, nonce, h2))).hexdigest() if digest == param_dict['response']: self.write('ok') else: