* Drop support for python 3.3
In June 2017, Python 3.3 accounted for 0.2% of Tornado's downloads
from pypi.
* travis.yml: Use trusty, update pypy versions
Get a py35-compatible version of pypy3. Plain "pypy" no longer seems
to work in this environment, so specify a version.
Drop testing of python 2.7.8, which no longer seems to be available.
* gen,queues: Drop the "legacy aiter protocol"
This protocol changed in Python 3.5.2 (after being introduced in
3.5.0). Async iteration now requires that version of Python (or
newer).
Closes#2107
* travis.yml: Only run doctests on one version of python 3
* Get tests passing on latest version of pypy3
In addition to changing the configurable default, add a special case
in IOLoop.current() so that the current IOLoop will be backed by
the main asyncio event loop.
As per their email ‘Changes to project subdomains’:
> Starting today, Read the Docs will start hosting projects from subdomains on the domain readthedocs.io, instead of on readthedocs.org. This change addresses some security concerns around site cookies while hosting user generated data on the same domain as our dashboard.
Test Plan: Manually visited all the links I’ve modified.
Never use unittest2 on python 3 (it appears to not interoperate with
the standard unittest module). On python 2, use the same logic in
tornado.testing and tornado.test.util to select an implementation.
Fixes#1005.
This fixes a problem in tests in which a closing IOLoop would os.close()
all of its file descriptors while socket objects for those fds still
existed. When those socket objects were garbage collected, they would
close the fd a second time (by which time it may have been reassigned
to a new socket).
Due to subtleties of garbage collection this has only been observed
with the asyncio event loop in tests of curl_httpclient.
The resolvers are tested in netutil_test when their dependencies are
available, and re-running the entire test suite with a different resolver
is unlikely to expose any new problems. (the resolver tests are still
present in travis.yml for now, though)
Fill in some gaps in the coverage (mostly on the python 3 side, and
using more consistent dependencies throughout) and move the 3.x tests
that don't care about a specific 3.x version to 3.3.
This is still less thorough than the travis.yml, which runs everything for
every python version.
time.strftime is influenced by the user's locale (if one is set with
locale.setlocale), so it's not what we want. Go back to the (slower)
email.utils functions.
Fixes#800.