[tox]
envlist = py27
skipsdist=True

[testenv]
basepython = python2.7
commands = 
    ./ensure-pysqlcipher-has-usleep.sh
    py.test -x \
      --cov-report=html \
      --cov-report=term \
      --cov=leap.soledad \
      {posargs}
usedevelop = True
deps =
    coverage
    pytest
    pytest-cov
    pytest-twisted
    mock
    testscenarios
    setuptools-trial
    pdbpp
    couchdb
    requests
    service_identity
    leap.common
# used by benchmarks
    psutil
    numpy
    pytest-benchmark
    elasticsearch
    certifi
# install soledad from current tree
    -e../
    -e../[client]
    -e../[server]
setenv =
    HOME=/tmp
    TERM=xterm
    XDG_CACHE_HOME=./.cache/
install_command = pip install {opts} {packages}

[testenv:py34]
basepython = python3.4
commands =
    py.test \
      --cov-report=html \
      --cov-report=term \
      --cov=leap.soledad \
      {posargs}
usedevelop = True
deps =
    coverage
    pytest
    pytest-cov
    pytest-twisted
    mock
    testscenarios
    setuptools-trial
    couchdb
    requests
    service_identity
# used by benchmarks
    psutil
    numpy
    pytest-benchmark
    elasticsearch
    certifi
# install soledad local packages
    -e../
    -e../[client]
    -e../[server]
setenv =
    HOME=/tmp
    TERM=xterm
install_command = pip3 install {opts} {packages}

[testenv:benchmark]
deps =
    {[testenv]deps}
commands =
# we must make sure that installed pysqlcipher was built with the HAVE_USLEEP
# flag, or we might have problems with concurrent db access.
    ./ensure-pysqlcipher-has-usleep.sh
# run benchmarks twice: once for time and cpu and a second time for memory
    py.test --subdir=benchmarks {posargs}
    py.test --subdir=benchmarks --watch-memory {posargs}
passenv = HOST_HOSTNAME

[testenv:responsiveness]
deps =
    {[testenv:benchmark]deps}
commands =
    ./ensure-pysqlcipher-has-usleep.sh
    py.test --subdir=responsiveness {posargs}

[testenv:code-check]
changedir = ..
deps =
    pep8
    flake8
commands =
    pep8
    flake8

[testenv:parallel]
deps =
    {[testenv]deps}
    pytest-xdist
install_command = pip install {opts} {packages}
commands =
    ./ensure-pysqlcipher-has-usleep.sh
    py.test {posargs} -n 4