- 2.7.8
- 2.7
- pypy
- - 3.2
- 3.3
- 3.4
- 3.5
# TODO(bdarnell): pycares tests are currently disabled on travis due to ipv6 issues.
#- if [[ $TRAVIS_PYTHON_VERSION != 'pypy'* && $DEPS == true ]]; then travis_retry pip install pycares; fi
- if [[ $TRAVIS_PYTHON_VERSION != 'pypy'* && $DEPS == true ]]; then travis_retry pip install pycurl; fi
- - if [[ $TRAVIS_PYTHON_VERSION == '3.2' && $DEPS == true ]]; then travis_retry pip install mock; fi
# Twisted runs on 2.x and 3.3+, but is flaky on pypy.
- - if [[ $TRAVIS_PYTHON_VERSION != '3.2' && $TRAVIS_PYTHON_VERSION != 'pypy'* && $DEPS == true ]]; then travis_retry pip install Twisted; fi
+ - if [[ $TRAVIS_PYTHON_VERSION != 'pypy'* && $DEPS == true ]]; then travis_retry pip install Twisted; fi
- if [[ $TRAVIS_PYTHON_VERSION == '2.7' && $DEPS == true ]]; then travis_retry pip install sphinx sphinx_rtd_theme; fi
- if [[ $TRAVIS_PYTHON_VERSION == '3.5' && $DEPS == true ]]; then travis_retry pip install sphinx sphinx_rtd_theme; fi
# On travis the extension should always be built
- if [[ $TRAVIS_PYTHON_VERSION != 'pypy'* ]]; then export TORNADO_EXTENSION=1; fi
- travis_retry python setup.py install
- # Coverage 4.0 no longer supports py32. Install an older version before
- # codecov tries to install the latest.
- - if [[ $TRAVIS_PYTHON_VERSION == '3.2' ]]; then travis_retry pip install 'coverage<4.0'; fi
- travis_retry pip install codecov
- curl-config --version; pip freeze
- if [[ $TRAVIS_PYTHON_VERSION != pypy* && $DEPS == true ]]; then python $TARGET --resolver=tornado.netutil.ThreadedResolver; fi
- if [[ $TRAVIS_PYTHON_VERSION == 2* && $DEPS == true ]]; then python $TARGET --httpclient=tornado.curl_httpclient.CurlAsyncHTTPClient; fi
- if [[ $TRAVIS_PYTHON_VERSION == 2* && $DEPS == true ]]; then python $TARGET --ioloop_time_monotonic; fi
- - if [[ $TRAVIS_PYTHON_VERSION != '3.2' && $TRAVIS_PYTHON_VERSION != 'pypy'* && $DEPS == true ]]; then python $TARGET --ioloop=tornado.platform.twisted.TwistedIOLoop; fi
+ - if [[ $TRAVIS_PYTHON_VERSION != 'pypy'* && $DEPS == true ]]; then python $TARGET --ioloop=tornado.platform.twisted.TwistedIOLoop; fi
- if [[ $TRAVIS_PYTHON_VERSION == 3.4 || $TRAVIS_PYTHON_VERSION == 3.5 ]]; then python $TARGET --ioloop=tornado.platform.asyncio.AsyncIOLoop; fi
- if [[ $TRAVIS_PYTHON_VERSION == 2* && $DEPS == true ]]; then python $TARGET --ioloop=tornado.platform.asyncio.AsyncIOLoop; fi
- if [[ $TRAVIS_PYTHON_VERSION == 2* && $DEPS == true ]]; then python $TARGET --resolver=tornado.platform.twisted.TwistedResolver; fi
#- if [[ $TRAVIS_PYTHON_VERSION != pypy* && $DEPS == true ]]; then python $TARGET --resolver=tornado.platform.caresresolver.CaresResolver; fi
- - if [[ $TRAVIS_PYTHON_VERSION == 3* && $TRAVIS_PYTHON_VERSION != '3.2' ]]; then python $TARGET --ioloop_time_monotonic; fi
+ - if [[ $TRAVIS_PYTHON_VERSION == 3* ]]; then python $TARGET --ioloop_time_monotonic; fi
# make coverage reports for Codecov to find
- if [[ $TRAVIS_PYTHON_VERSION != nightly ]]; then coverage xml; fi
- export TORNADO_EXTENSION=0
:hide:
The statement ``raise gen.Return(response.body)`` is an artifact of
-Python 2 (and 3.2), in which generators aren't allowed to return
+Python 2, in which generators aren't allowed to return
values. To overcome this, Tornado coroutines raise a special kind of
exception called a `.Return`. The coroutine catches this exception and
treats it like a returned value. In Python 3.3 and later, a ``return
The Tornado source code is `hosted on GitHub
<https://github.com/tornadoweb/tornado>`_.
-**Prerequisites**: Tornado 4.3 runs on Python 2.7, and 3.2+
-(support for Python 3.2 is deprecated and will be removed in
-the next release). For Python 2, version 2.7.9 or newer is *strongly*
+**Prerequisites**: Tornado 4.3 runs on Python 2.7, and 3.3+
+For Python 2, version 2.7.9 or newer is *strongly*
recommended for the improved SSL support. In addition to the requirements
which will be installed automatically by ``pip`` or ``setup.py install``,
the following optional packages may be useful:
[tox]
# This currently segfaults on pypy.
-envlist = py27,py32,py33,py34,py35
+envlist = py27,py33,py34,py35
[testenv]
deps =
# defaults for the others.
basepython =
py27: python2.7
- py32: python3.2
py33: python3.3
py34: python3.4
py35: python3.5
"servers": [
{"agent": "Tornado/py27", "url": "ws://localhost:9001",
"options": {"version": 18}},
- {"agent": "Tornado/py34", "url": "ws://localhost:9002",
+ {"agent": "Tornado/py35", "url": "ws://localhost:9002",
"options": {"version": 18}},
{"agent": "Tornado/pypy", "url": "ws://localhost:9003",
"options": {"version": 18}}
sleep 1
.tox/py27/bin/python client.py --name='Tornado/py27'
-.tox/py34/bin/python client.py --name='Tornado/py32'
+.tox/py35/bin/python client.py --name='Tornado/py35'
.tox/pypy/bin/python client.py --name='Tornado/pypy'
kill $FUZZING_SERVER_PID
.tox/py27/bin/python server.py --port=9001 &
PY27_SERVER_PID=$!
-.tox/py34/bin/python server.py --port=9002 &
-PY32_SERVER_PID=$!
+.tox/py35/bin/python server.py --port=9002 &
+PY35_SERVER_PID=$!
.tox/pypy/bin/python server.py --port=9003 &
PYPY_SERVER_PID=$!
.tox/py27/bin/wstest -m fuzzingclient
kill $PY27_SERVER_PID
-kill $PY32_SERVER_PID
+kill $PY35_SERVER_PID
kill $PYPY_SERVER_PID
wait
# to install autobahn and build the speedups module.
# See run.sh for the real test runner.
[tox]
-envlist = py27, py32, pypy
+envlist = py27, py35, pypy
setupdir=../../..
[testenv]
DEADSNAKES_PACKAGES="
python2.7
python2.7-dev
-python3.2
-python3.2-dev
"
apt-get -y install $DEADSNAKES_PACKAGES
[tox]
-envlist = py27-full, py32, py27
+envlist = py27-full, py27
setupdir=/tornado
toxworkdir=/home/vagrant/tox-tornado
apt-get update
DEADSNAKES_PACKAGES="
-python3.2
-python3.2-dev
+python3.5
+python3.5-dev
"
apt-get -y install $DEADSNAKES_PACKAGES
[tox]
-envlist = py27-full, py32, py27, py27-select, py27-twisted
+envlist = py27-full, py27, py27-select, py27-twisted
setupdir=/tornado
toxworkdir=/home/vagrant/tox-tornado
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:}
\ No newline at end of file
PYTHON_VERSIONS = [
(r'c:\python27\python.exe', 'http://www.python.org/ftp/python/2.7.3/python-2.7.3.msi'),
- (r'c:\python32\python.exe', 'http://www.python.org/ftp/python/3.2.3/python-3.2.3.msi'),
(r'c:\python33\python.exe', 'http://www.python.org/ftp/python/3.3.0/python-3.3.0.msi'),
]
[tox]
-envlist = py27-full, py32-full, py27, py32, py33, py27-opt, py33-monotonic
+envlist = py27-full, py27, py33, py27-opt, py33-monotonic
setupdir = e:\
toxworkdir = c:\tox-tornado
futures
mock
-[testenv:py32-full]
-basepython = python3.2
-deps =
- mock
-
[testenv:py33]
# tox's path mappings haven't been updated for py33 yet.
basepython = c:\python33\python.exe
'Programming Language :: Python :: 2',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3',
- 'Programming Language :: Python :: 3.2',
'Programming Language :: Python :: 3.3',
'Programming Language :: Python :: 3.4',
'Programming Language :: Python :: Implementation :: CPython',
# Basic configurations: Run the tests in both minimal installations
# and with all optional dependencies.
# (pypy3 doesn't have any optional deps yet)
- {py27,pypy,py32,py33,py34,py35,pypy3},
- {py27,pypy,py32,py33,py34,py35}-full,
+ {py27,pypy,py33,py34,py35,pypy3},
+ {py27,pypy,py33,py34,py35}-full,
# Also run the tests with each possible replacement of a default
# component. Run each test on both python 2 and 3 where possible.
# Alternate Resolvers.
{py2,py3}-full-{threadedresolver},
- {py2,py32}-full-caresresolver,
+ {py2,py3}-full-caresresolver,
# Other configurations; see comments below.
{py2,py3}-{monotonic,opt},
# defaults for the others.
basepython =
py27: python2.7
- py32: python3.2
py33: python3.3
py34: python3.4
py35: python3.5
py3-unittest2: unittest2py3k
# cpython-only deps: pycurl installs but curl_httpclient doesn't work;
# twisted mostly works but is a bit flaky under pypy.
- {py27,py32,py33,py34,py35}-full: pycurl
+ {py27,py33,py34,py35}-full: pycurl
{py2,py3}: pycurl>=7.19.3.1
- # twisted is cpython only and doesn't support py32.
+ # twisted is cpython only.
{py27,py33,py34,py35}-full: twisted
{py2,py3}: twisted
# pycares installation currently fails on py33
# (https://github.com/pypa/pip/pull/816)
- {py2,py27,py32,py33,py34,py35}-full: pycares
+ {py2,py3,py27,py33,py34,py35}-full: pycares
# futures became standard in py32
{py2,py27,pypy}-full: futures
# mock became standard in py33
- {py2,py27,pypy,py3,py32,pypy3}-full: mock
+ {py2,py27,pypy,py3,pypy3}-full: mock
# singledispatch became standard in py34.
- {py2,py27,pypy,py3,py32,py33}-full: singledispatch
+ {py2,py27,pypy,py3,py33}-full: singledispatch
py33-asyncio: asyncio
trollius: trollius
py2-monotonic: Monotime
setenv =
# The extension is mandatory on cpython.
- {py2,py27,py3,py32,py33,py34,py35}: TORNADO_EXTENSION=1
+ {py2,py27,py3,py33,py34,py35}: TORNADO_EXTENSION=1
# In python 3, opening files in text mode uses a
# system-dependent encoding by default. Run the tests with "C"
# (ascii) and "utf-8" locales to ensure we don't have hidden
lang_utf8: LANG=en_US.utf-8
# tox's parser chokes if all the setenv entries are conditional.
DUMMY=dummy
- {py2,py27,py3,py32,py33,py34,py35}-no-ext: TORNADO_EXTENSION=0
+ {py2,py27,py3,py33,py34,py35}-no-ext: TORNADO_EXTENSION=0
# All non-comment lines but the last must end in a backslash.
# Tox filters line-by-line based on the environment name.
python \
# py3*: -b turns on an extra warning when calling
# str(bytes), and -bb makes it an error.
- {py3,py32,py33,py34,py35,pypy3}: -bb \
+ {py3,py33,py34,py35,pypy3}: -bb \
# Python's optimized mode disables the assert statement, so
# run the tests in this mode to ensure we haven't fallen into
# the trap of relying on an assertion's side effects or using