blob: 40909881cdffa2ccb4cd1070832f634218916884 [file] [log] [blame]
# Tox (http://codespeak.net/~hpk/tox/) 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.
#
# See also tornado/test/run_pyversion_tests.py, which is faster but
# less thorough.
#
# On my macports-based setup, the environment variable
# ARCHFLAGS='-arch x86_64' must be set when building pycurl, and a
# symlink from mysql_config to mysql_config5 must exist when building
# MySQL-python.
[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, py25-full, py32, pypy, py25, py26, py26-full, py27, py32-utf8, py33
[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=
[testenv:py25]
basepython = python2.5
deps = simplejson
[testenv:py25-full]
basepython = python2.5
deps =
MySQL-python
pycurl
simplejson
twisted>=12.0.0
# zope.interface (used by twisted) dropped python 2.5 support in 4.0
zope.interface<4.0
# py26-full deliberately runs an older version of twisted to ensure
# we're still compatible with the oldest version we support.
[testenv:py26-full]
basepython = python2.6
deps =
MySQL-python
pycurl
twisted==11.0.0
[testenv:py27-full]
basepython = python2.7
deps =
MySQL-python
pycurl
twisted>=12.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 =
MySQL-python
pycurl
twisted>=11.1.0
commands = python -m tornado.test.runtests --httpclient=tornado.curl_httpclient.CurlAsyncHTTPClient {posargs:}
# No pypy-full yet: pycurl doesn't build with pypy, and installing
# twisted under pypy takes a *very* long time. MySQL-python builds with
# pypy, but doesn't work.
# 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
[testenv:py32-utf8]
basepython = python3.2
setenv = LANG=en_US.utf-8
# No py32-full yet: none of our dependencies currently work on python3.
[testenv:py33]
# tox doesn't yet know "py33" by default
basepython = python3.3