# Tox (http://tox.testrun.org/) is a tool for running tests
# in multiple virtualenvs. This configuration file will run the
# test suite on all supported python versions. To use it, "pip install tox"
# and then run "tox" from this directory.

[tox]
toxworkdir = {env:TMPDIR:/tmp}/tox-{env:USER}/authentic/{env:BRANCH_NAME:}
envlist = coverage-dj18-{authentic,rbac}-{pg,sqlite}

[testenv]
# django.contrib.auth is not tested it does not work with our templates
whitelist_externals =
  /bin/mv
setenv =
  AUTHENTIC2_SETTINGS_FILE=tests/settings.py
  BRANCH_NAME={env:BRANCH_NAME:}
  sqlite: DB_ENGINE=django.db.backends.sqlite3
  pg: DB_ENGINE=django.db.backends.postgresql_psycopg2
  coverage: COVERAGE=--junitxml=junit-{envname}.xml --cov-report xml --cov-report html --cov=src/ --cov-config .coveragerc
  authentic: DJANGO_SETTINGS_MODULE=authentic2.settings
  rbac: DJANGO_SETTINGS_MODULE=django_rbac.test_settings
  fast: FAST=--nomigrations
  reusedb: REUSEDB=--reuse-db
usedevelop =
  coverage: True
  nocoverage: False
deps = 
  pip > 9
  dj18: django>1.8,<1.9
  pg: psycopg2
  coverage
  pytest-cov
  pytest-django
  pytest-random
  mock
  pytest>=3.3.0
  lxml
  cssselect
  pylint
  pylint-django<2.0
  django-webtest<1.9.3
  WebTest
  pyquery
  httmock
  pytz
commands =
  ./getlasso.sh
  authentic: py.test {env:FAST:} {env:REUSEDB:} {env:COVERAGE:} {posargs:tests/ --random}
  rbac: py.test {env:FAST:} {env:REUSEDB:} {env:COVERAGE:} {posargs:tests_rbac/}
  coverage: mv coverage.xml coverage-{envname}.xml
  coverage-dj18-authentic-pg: mv htmlcov htmlcov-coverage-dj18-authentic-pg
  coverage-dj18-rbac-pg: mv htmlcov htmlcov-coverage-dj18-rbac-pg
  coverage-dj18-authentic-pg: ./pylint.sh src/authentic2/


[testenv:check]
deps = prospector[with_pyroma]
commands = python -m compileall -fq {toxinidir}/src
           prospector --with-tool pyroma {toxinidir}/src
