diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 9f20e73..a6a9ca7 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.0.30 +current_version = 0.0.31 files = setup.py test_server/__init__.py docs/conf.py commit = True tag = True diff --git a/docs/conf.py b/docs/conf.py index 70b2bd4..7f6432e 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -60,9 +60,9 @@ # built documents. # # The short X.Y version. -version = u'.'.join(u'0.0.30'.split('.')[:2]) +version = u'.'.join(u'0.0.31'.split('.')[:2]) # The full version, including alpha/beta/rc tags. -release = u'0.0.30' +release = u'0.0.31' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/setup.py b/setup.py index 45e38fb..7b40e1f 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ setup( # Meta data name='test-server', - version='0.0.30', + version='0.0.31', author='Gregory Petukhov', author_email='lorien@lorien.name', maintainer="Gregory Petukhov", diff --git a/test/server.py b/test/server.py index 24b9323..753ea72 100644 --- a/test/server.py +++ b/test/server.py @@ -5,6 +5,7 @@ # pylint: disable=redefined-outer-name from threading import Thread import time +#import socket from six.moves.urllib.error import HTTPError, URLError from six.moves.urllib.request import urlopen, Request from six.moves.urllib.parse import unquote @@ -275,3 +276,27 @@ def test_null_bytes(server): res = urlopen(server.get_url()) assert res.read() == b'zzz' assert unquote(server.request['path']) == '/\x00/' + + +#def send_get_request(host, port, path): +# sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +# sock.connect((host, port)) +# data = ( +# b'GET %s HTTP/1.1\r\n' +# b'Host: %s\r\n' +# b'\r\n' +# #% (quote(path, safe='/').encode('utf-8'), host.encode('utf-8')) +# % (path, host.encode('utf-8')) +# ) +# print(data) +# sock.send(data) +# data = sock.recv(1024 * 10) +# sock.close() +# return data + + +def test_utf_header(server): + server.response['headers'] = [ + ('Location', (server.get_url() + u'фыва').encode('utf-8')) + ] + urlopen(server.get_url()) diff --git a/test_server/__init__.py b/test_server/__init__.py index 6223172..4439bef 100644 --- a/test_server/__init__.py +++ b/test_server/__init__.py @@ -1,4 +1,4 @@ from test_server.server import * # noqa pylint: disable=wildcard-import from test_server.error import * # noqa pylint: disable=wildcard-import -__version__ = '0.0.30' +__version__ = '0.0.31' diff --git a/test_server/server.py b/test_server/server.py index fff4f35..823da96 100644 --- a/test_server/server.py +++ b/test_server/server.py @@ -10,6 +10,7 @@ import six from webtest.http import StopableWSGIServer +from waitress import task import bottle from test_server.error import TestServerError @@ -17,6 +18,11 @@ __all__ = ('TestServer', 'WaitTimeoutError') logger = logging.getLogger('test_server.server') # pylint: disable=invalid-name +if six.PY3: + # Original (from waitress.compat.tobytes): + # def tobytes(s): + # return bytes(s, 'latin-1') + task.tobytes = lambda x: bytes(x, 'utf-8') def _hval_custom(value):