[tox] envlist = {py27,py35,py36,py37,py38,py39,py310,pypy,pypy3}-{with,without}_coverage-{,appveyor} [testenv] install_command = {envpython} -m pip install -vvv {opts} {packages} ; setenv = ; ; The following two flags are a workaround for an issue with building ; ; Python extensions on OSX with xcode 5.1. ; ; See: http://stackoverflow.com/questions/22313407/ ; CFLAGS=-Qunused-arguments ; CPPFLAGS=-Qunused-arguments deps = ; use specific versions of testing tools with which this is known to work with_coverage: coverage>=5,<6 {py27,pypy}: unittest2==1.1.0 {py27,pypy}: mock==1.3.0 {py27,py35}: biopython<=1.76 {py36,py37,py38,py39,py310,py311,pypy3}: biopython whitelist_externals = mv commands = ; Notes: ; * run tests both with and without the C extensions (including Cython) ; * if running with coverage, merge the coverage run results from both runs ; * for Python 2.6 use the unit2 script since -m unittest2 doesn't work ; (but when running with coverage, coverage run -m unittest2 works) {py27,pypy}-without_coverage: {envbindir}/unit2 discover -v tests -t {toxinidir} {py27,pypy}-with_coverage: {envbindir}/coverage run --source=fuzzysearch -m unittest2 discover tests {py35,py36,py37,py38,py39,py310,pypy3}-without_coverage: {envpython} -m unittest discover -v tests {py35,py36,py37,py38,py39,py310,pypy3}-with_coverage: {envbindir}/coverage run --source=fuzzysearch -m unittest discover tests with_coverage: mv .coverage .coverage.with_extensions {envpython} -c 'import os; [os.remove(os.path.join(d, fn)) for (d, dns, fns) in os.walk(os.path.join(r"{envsitepackagesdir}", "fuzzysearch")) for fn in fns if fn.endswith((".so", ".pyd"))]' {py27,pypy}-without_coverage: {envbindir}/unit2 discover -v tests -t {toxinidir} {py27,pypy}-with_coverage: {envbindir}/coverage run --source=fuzzysearch -m unittest2 discover tests {py35,py36,py37,py38,py39,py310,pypy3}-without_coverage: {envpython} -m unittest discover -v tests {py35,py36,py37,py38,py39,py310,pypy3}-with_coverage: {envbindir}/coverage run --source=fuzzysearch -m unittest discover tests with_coverage: mv .coverage .coverage.no_extensions with_coverage: {envbindir}/coverage combine basepython = py27: python2.7 py35: python3.5 py36: python3.6 py37: python3.7 py38: python3.8 py39: python3.9 py310: python3.10 pypy: pypy pypy3: pypy3 appveyor: {env:PYTHON:}\\python.exe