# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt

# An experiment in using tox to install the sdist, and do the pytracer/ctracer
# split.  Doesn't yet work because the working tree is in the import path, so
# "import coverage" finds the working tree instead of the sdist-installed code.
# This can be fixed one of two ways:
#
# 1. By changing to a "src" layout, so that "import coverage" won't work in the
# working tree, or 
#
# 2. By removing the "__init__.py" from the tests directory, so that nose won't
# add the working tree to the path. This will also mean changing a number of
# import statements in the tests directory.

[tox]
envlist = py{26,27,33,34,35}-{c,py}tracer, pypy{24,26,3_24}-pytracer
skip_missing_interpreters = True

[testenv]
commands =
    # Create tests/zipmods.zip, install the egg1 egg
    python igor.py zip_mods install_egg 

    # Remove the C extension so that we can test the PyTracer
    pytracer: python igor.py remove_extension
    pytracer: python igor.py test_with_tracer py {posargs}

    ctracer: python igor.py test_with_tracer c {posargs}

deps =
    # https://requires.io/github/nedbat/coveragepy/requirements/
    nose==1.3.7
    mock==1.3.0
    PyContracts==1.7.6
    py26: unittest2==1.1.0
    py{26,27}: gevent==1.0.2
    py{26,27}: eventlet==0.17.4
    py{26,27,33,34,35}: greenlet==0.4.9

passenv = COVERAGE_*

[testenv:pypy]
basepython = pypy

[testenv:pypy24]
basepython = pypy2.4

[testenv:pypy26]
basepython = pypy2.6

[testenv:pypy3_24]
basepython = pypy3-2.4


# Yes, pep8 will read its settings from tox.ini!
[pep8]
# E265: block comment should start with '# '
# E301 expected 1 blank line, found 0
# E401 multiple imports on one line
# The rest are the default ignored warnings.
ignore = E265,E123,E133,E226,E241,E242,E301,E401
max-line-length = 100
