[tox]
envlist = py36, py37, examples, notebooks, flake8, docs, coverage


[travis]
python =
    3.7: py37
    3.6: py36

[flake8]
max-line-length = 120
ignore = E121 E126 E123 E128 E133 E226 E241 E242 E704 W291 W293 W391 W503 W504 W505

[testenv:flake8]
basepython = python
passenv = DISPLAY
deps =
    -r{toxinidir}/requirements_dev.txt
    -r{toxinidir}/requirements_continuous_integration.txt
commands =
    flake8 flatland tests examples benchmarks

[testenv:docs]
; use python3.6 because of incompatibility under Windows of the pycairo installed through conda for py37
basepython = python3.6
whitelist_externals = make
passenv =
    DISPLAY
    HTTP_PROXY
    HTTPS_PROXY
conda_deps =
    cairosvg
    pycairo
    tk
    graphviz
conda_channels :
    conda-forge
    anaconda
deps =
    -r{toxinidir}/requirements_dev.txt
    -r{toxinidir}/requirements_continuous_integration.txt
changedir = {toxinidir}
commands =
    make docs

[testenv:coverage]
; use python3.6 because of incompatibility under Windows of the pycairo installed through conda for py37
basepython = python3.6
whitelist_externals = make
passenv =
    DISPLAY
; HTTP_PROXY+HTTPS_PROXY required behind corporate proxies
    HTTP_PROXY
    HTTPS_PROXY
conda_deps =
    cairosvg
    pycairo
    tk
conda_channels :
    conda-forge
    anaconda
deps =
    -r{toxinidir}/requirements_dev.txt
    -r{toxinidir}/requirements_continuous_integration.txt
changedir = {toxinidir}
commands =
    python make_coverage.py

[testenv:benchmarks]
; use python3.6 because of incompatibility under Windows of the pycairo installed through conda for py37
basepython = python3.6
setenv =
    PYTHONPATH = {toxinidir}
passenv =
    DISPLAY
    XAUTHORITY
; HTTP_PROXY+HTTPS_PROXY required behind corporate proxies
    HTTP_PROXY
    HTTPS_PROXY
whitelist_externals = sh
deps =
    -r{toxinidir}/requirements_dev.txt
    -r{toxinidir}/requirements_continuous_integration.txt
changedir = {toxinidir}    
commands =
    python --version
    python {toxinidir}/benchmarks/benchmark_all_examples.py

[testenv:profiling]
; use python3.6 because of incompatibility under Windows of the pycairo installed through conda for py37
basepython = python3.6
setenv =
    PYTHONPATH = {toxinidir}
passenv =
    DISPLAY
    XAUTHORITY
; HTTP_PROXY+HTTPS_PROXY required behind corporate proxies
    HTTP_PROXY
    HTTPS_PROXY
conda_deps =
    cairosvg
    pycairo
    tk
conda_channels :
    conda-forge
    anaconda
deps =
    -r{toxinidir}/requirements_dev.txt
    -r{toxinidir}/requirements_continuous_integration.txt
changedir = {toxinidir}    
commands =
    python {toxinidir}/benchmarks/profile_all_examples.py

[testenv:examples]
; TODO should examples be run with py36 and py37??
; use python3.6 because of incompatibility under Windows of the pycairo installed through conda for py37
basepython = python3.6
setenv =
    PYTHONPATH = {toxinidir}
passenv =
    DISPLAY
    XAUTHORITY
; HTTP_PROXY+HTTPS_PROXY required behind corporate proxies
    HTTP_PROXY
    HTTPS_PROXY
conda_deps =
    cairosvg
    pycairo
    tk
conda_channels :
    conda-forge
    anaconda
deps =
    -r{toxinidir}/requirements_dev.txt
; run tests from subfolder to ensure that resources are accessed via resources and not via relative paths
changedir = {envtmpdir}/c236d3c240d61a0969d4cb59e2180ce5
commands =
    python {toxinidir}/benchmarks/run_all_examples.py

[testenv:notebooks]
; TODO should examples be run with py36 and py37??
; use python3.6 because of incompatibility under Windows of the pycairo installed through conda for py37
basepython = python3.6
setenv =
    PYTHONPATH = {toxinidir}
passenv =
    DISPLAY
    XAUTHORITY
; HTTP_PROXY+HTTPS_PROXY required behind corporate proxies
    HTTP_PROXY
    HTTPS_PROXY
whitelist_externals = sh
deps =
    -r{toxinidir}/requirements_dev.txt
    -r{toxinidir}/requirements_continuous_integration.txt
conda_deps =
    cairosvg
    pycairo
    tk
conda_channels :
    conda-forge
    anaconda
; run tests from subfolder to ensure that resources are accessed via resources and not via relative paths
changedir = {envtmpdir}/6f59bc68108c3895b1828abdd04b9a06
commands =
    python -m jupyter nbextension install --py --sys-prefix widgetsnbextension
    python -m jupyter nbextension enable --py --sys-prefix widgetsnbextension
    python -m jupyter nbextension install --py --sys-prefix jpy_canvas
    python -m jupyter nbextension enable --py --sys-prefix jpy_canvas
    python {toxinidir}/notebooks/run_all_notebooks.py

[testenv:start_jupyter]
; use python3.6 because of incompatibility under Windows of the pycairo installed through conda for py37
basepython = python3.6
setenv =
    PYTHONPATH = {toxinidir}
passenv =
    DISPLAY
    XAUTHORITY
; HTTP_PROXY+HTTPS_PROXY required behind corporate proxies
    HTTP_PROXY
    HTTPS_PROXY
whitelist_externals = sh
deps =
    -r{toxinidir}/requirements_dev.txt
    -r{toxinidir}/requirements_continuous_integration.txt
conda_deps =
    cairosvg
    pycairo
    tk
conda_channels :
    conda-forge
    anaconda
changedir = {toxinidir}
commands =
    python -m jupyter nbextension install --py --sys-prefix widgetsnbextension
    python -m jupyter nbextension enable --py --sys-prefix widgetsnbextension
    python -m jupyter nbextension install --py --sys-prefix jpy_canvas
    python -m jupyter nbextension enable --py --sys-prefix jpy_canvas
    python -m jupyter notebook

[testenv]
setenv =
    PYTHONPATH = {toxinidir}
passenv =
    DISPLAY
    XAUTHORITY
; HTTP_PROXY+HTTPS_PROXY required behind corporate proxies
    HTTP_PROXY
    HTTPS_PROXY
conda_deps =
    cairosvg
    pycairo
    tk
conda_channels :
    conda-forge
    anaconda
deps =
    -r{toxinidir}/requirements_dev.txt
; run tests from subfolder to ensure that resources are accessed via resources and not via relative paths
changedir = {envtmpdir}/fefed3ba12bf1ed81dbcc20fb52706ea
commands =
    python --version
    python -m pytest --basetemp={envtmpdir} {toxinidir}

[testenv:py37]
; exclude py37 from Windows because of incompatibility the pycairo installed through conda for py37
platform = linux|linux2|darwin
setenv =
    PYTHONPATH = {toxinidir}
passenv =
    DISPLAY
    XAUTHORITY
; HTTP_PROXY+HTTPS_PROXY required behind corporate proxies
    HTTP_PROXY
    HTTPS_PROXY
conda_deps =
    cairosvg
    pycairo
    tk
conda_channels :
    conda-forge
    anaconda
deps =
    -r{toxinidir}/requirements_dev.txt
; run tests from subfolder to ensure that resources are accessed via resources and not via relative paths
changedir = {envtmpdir}/fefed3ba12bf1ed81dbcc20fb52706ea
commands =
    python --version
    python -m pytest --basetemp={envtmpdir} {toxinidir}