tornado/tox.ini

243 lines
7.0 KiB
INI

# Tox (http://tox.readthedocs.org) is a tool for running tests
# in multiple virtualenvs. This configuration file will run the tornado
# test suite on all supported python versions. To use it, "pip install tox"
# and then run "tox" from this directory.
#
# When building pycurl on my macports-based setup, I need to either set the
# environment variable ARCHFLAGS='-arch x86_64' or use
# 'port install curl +universal' to get both 32- and 64-bit versions of
# libcurl.
[tox]
# "-full" variants include optional dependencies, to ensure
# that things work both in a bare install and with all the extras.
envlist = py27-full, py27-curl, py32-full, pypy, py32-curl, py26, py26-full, py27, py32, py32-utf8, py33, py27-opt, py32-opt, pypy-full, py27-select, py27-monotonic, py33-monotonic, py33-asyncio, py27-twisted, py27-threadedresolver, py27-twistedresolver, py27-twistedlayered, py27-caresresolver, py32-caresresolver, py27-locale, py27-trollius, py27-docs
[testenv]
commands = python -m tornado.test.runtests {posargs:}
# python will import relative to the current working directory by default,
# so cd into the tox working directory to avoid picking up the working
# copy of the files (especially important for 2to3).
changedir = {toxworkdir}
# Note that PYTHONPATH must not be set when running tox (and setting it
# with the following doesn't seem to work, since tox/virtualenv appends to
# PYTHONPATH)
#environment = PYTHONPATH=
# tox 1.6 passes --pre to pip by default, which currently has problems
# installing pycurl and monotime (https://github.com/pypa/pip/issues/1405).
# Remove it (it's not a part of {opts}) to only install real releases.
install_command = pip install {opts} {packages}
[testenv:py26]
basepython = python2.6
deps = unittest2
[testenv:py26-full]
basepython = python2.6
deps =
futures
mock
pycurl
twisted>=11.0.0
unittest2
[testenv:py27-full]
basepython = python2.7
deps =
futures
mock
pycurl
twisted>=11.0.0
[testenv:py27-curl]
# Same as py27-full, but runs the tests with curl_httpclient by default.
# Note that httpclient_test is always run with both client implementations;
# this flag controls which client all the other tests use.
basepython = python2.7
deps =
futures
mock
pycurl
twisted>=11.0.0
commands = python -m tornado.test.runtests --httpclient=tornado.curl_httpclient.CurlAsyncHTTPClient {posargs:}
[testenv:py27-select]
# Same as py27-full, but runs the tests with the select IOLoop.
# The other tests will run with the most platform-appropriate implementation,
# but this one is the lowest common denominator and should work anywhere.
basepython = python2.7
deps =
futures
mock
pycurl
twisted>=11.0.0
commands = python -m tornado.test.runtests --ioloop=tornado.platform.select.SelectIOLoop {posargs:}
[testenv:py26-twisted]
basepython = python2.6
deps =
futures
mock
pycurl
twisted>=12.3.0
unittest2
commands = python -m tornado.test.runtests --ioloop=tornado.platform.twisted.TwistedIOLoop {posargs:}
[testenv:py27-twisted]
basepython = python2.7
deps =
futures
mock
pycurl
twisted>=12.3.0
commands = python -m tornado.test.runtests --ioloop=tornado.platform.twisted.TwistedIOLoop {posargs:}
[testenv:py27-monotonic]
basepython = python2.7
deps =
Monotime
futures
mock
pycurl
twisted
commands = python -m tornado.test.runtests --ioloop_time_monotonic {posargs:}
[testenv:py27-threadedresolver]
basepython = python2.7
deps =
futures
mock
pycurl
twisted
commands = python -m tornado.test.runtests --resolver=tornado.netutil.ThreadedResolver {posargs:}
[testenv:py27-twistedresolver]
basepython = python2.7
deps =
futures
mock
pycurl
twisted
commands = python -m tornado.test.runtests --resolver=tornado.platform.twisted.TwistedResolver {posargs:}
[testenv:py27-twistedlayered]
basepython = python2.7
deps =
futures
mock
pycurl
twisted
commands = python -m tornado.test.runtests --ioloop=tornado.test.twisted_test.LayeredTwistedIOLoop --resolver=tornado.platform.twisted.TwistedResolver {posargs:}
[testenv:py27-caresresolver]
basepython = python2.7
deps =
futures
mock
pycares
pycurl
twisted
commands = python -m tornado.test.runtests --resolver=tornado.platform.caresresolver.CaresResolver {posargs:}
[testenv:py27-locale]
basepython = python2.7
commands = python -m tornado.test.runtests --locale=zh_TW {posargs:}
[testenv:pypy-full]
# This configuration works with pypy 1.9. pycurl installs ok but
# curl_httpclient doesn't work. Twisted works most of the time, but
# its tests seem flaky under pypy, so we don't run it for now. Also
# note that travis-ci does not yet have support for building C
# extensions with pypy, so we don't try to run this configuration
# there.
basepython = pypy
deps =
futures
mock
# 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 dependencies on this setting.
[testenv:py32]
basepython = python3.2
setenv = LANG=C
# -b turns on an extra warning when calling str(bytes), and -bb makes
# it an error.
commands = python -bb -m tornado.test.runtests {posargs:}
[testenv:py32-utf8]
basepython = python3.2
setenv = LANG=en_US.utf-8
[testenv:py32-full]
basepython = python3.2
deps =
mock
pycurl>=7.19.3
[testenv:py32-curl]
basepython = python3.2
deps =
mock
pycurl>=7.19.3
commands = python -m tornado.test.runtests --httpclient=tornado.curl_httpclient.CurlAsyncHTTPClient {posargs:}
[testenv:py33]
# tox doesn't yet know "py33" by default
basepython = python3.3
[testenv:py33-monotonic]
basepython = python3.3
commands = python -m tornado.test.runtests --ioloop_time_monotonic {posargs:}
[testenv:py33-asyncio]
basepython = python3.3
commands = python -m tornado.test.runtests --ioloop=tornado.platform.asyncio.AsyncIOLoop {posargs:}
deps = asyncio
[testenv:py32-caresresolver]
basepython = python3.2
deps =
pycares
commands = python -m tornado.test.runtests --resolver=tornado.platform.caresresolver.CaresResolver {posargs:}
# 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 them for things that should be
# runtime errors.
[testenv:py27-opt]
basepython = python2.7
deps =
futures
mock
pycurl
twisted>=12.0.0
commands = python -O -m tornado.test.runtests {posargs:}
# Trollius is the py2.7 backport of asyncio.
[testenv:py27-trollius]
basepython = python2.7
commands = python -m tornado.test.runtests --ioloop=tornado.platform.asyncio.AsyncIOLoop {posargs:}
# Pycurl tests currently fail with trollius.
deps =
futures
mock
# pycurl
trollius>=0.1.1
twisted
[testenv:py32-opt]
basepython = python3.2
commands = python -O -m tornado.test.runtests {posargs:}
deps =
mock
[testenv:py27-docs]
basepython = python2.7
changedir = docs
deps = sphinx
commands =
sphinx-build -q -E -n -W -b html . {envtmpdir}/html