Fix unix socket test on linux.

Unix socket addresses are bytes on linux (but str on mac).  This mostly
works but causes errors in py3's -bb strict mode.
This commit is contained in:
Ben Darnell 2014-04-27 12:58:40 -04:00
parent 61c05ab492
commit 073a535d52
2 changed files with 10 additions and 0 deletions

View File

@ -28,3 +28,7 @@ deps =
pycurl
twisted==12.2.0
commands = python -m tornado.test.runtests --ioloop=tornado.platform.twisted.TwistedIOLoop {posargs:}
[testenv:py32]
basepython = python3.2
commands = python -bb -m tornado.test.runtests {posargs:}

View File

@ -30,6 +30,7 @@ from __future__ import absolute_import, division, print_function, with_statement
import socket
from tornado.escape import native_str
from tornado.http1connection import HTTP1ServerConnection, HTTP1ConnectionParameters
from tornado import gen
from tornado import httputil
@ -207,6 +208,11 @@ class _HTTPRequestContext(object):
def __str__(self):
if self.address_family in (socket.AF_INET, socket.AF_INET6):
return self.remote_ip
elif isinstance(self.address, bytes):
# Python 3 with the -bb option warns about str(bytes),
# so convert it explicitly.
# Unix socket addresses are str on mac but bytes on linux.
return native_str(self.address)
else:
return str(self.address)