sqlite=sqlite:///:memory:
sqlite_file=sqlite:///querytest.db
postgresql=postgresql://scott:tiger@127.0.0.1:5432/test
-mysql=mysql+pymysql://scott:tiger@127.0.0.1:3306/test
+mysql=mysql://scott:tiger@127.0.0.1:3306/test?charset=utf8
mssql=mssql+pyodbc://scott:tiger@ms_2008
oracle=oracle://scott:tiger@127.0.0.1:1521
oracle8=oracle://scott:tiger@127.0.0.1:1521/?use_ansi=0
[tox]
minversion=1.8.dev1
-envlist = py{27,33,34,35}-sqla{09,10,11}, py{27}-sqla{079,084}, coverage
+envlist = py{27,33,34,35}-sqla{09,10,11}, py{27}-sqla{079,084}
SQLA_REPO = {env:SQLA_REPO:git+http://git.sqlalchemy.org/sqlalchemy.git}
[testenv]
+cov_args=--cov=alembic --cov-report term --cov-report xml
+
deps=pytest
pytest-xdist
mock
sqla09: {[tox]SQLA_REPO}@rel_0_9
sqla10: {[tox]SQLA_REPO}@rel_1_0
sqla11: {[tox]SQLA_REPO}@rel_1_1
+ postgresql: psycopg2
+ mysql: mysqlclient
+ oracle: cx_oracle
+ mssql: pymssql
+ coverage: pytest-cov
sitepackages=True
usedevelop=True
-commands=
- sqla{084,09,10,11}: python -m pytest -n 4 {posargs}
- sqla{079}: python -m pytest {posargs}
-
-
-[testenv:py27-sqla11]
-recreate=True
-
-[testenv:py27-sqla10]
-recreate=True
-
-[testenv:py27-sqla09]
-recreate=True
-
-[testenv:py33-sqla11]
-recreate=True
-
-[testenv:py33-sqla10]
-recreate=True
+setenv=
+ BASECOMMAND=python -m pytest --dropfirst
+ WORKERS=-n4
+ sqla079: WORKERS=
+ oracle: WORKERS=-n2
+ cov: COVERAGE={[testenv]cov_args}
+ sqlite: SQLITE=--db sqlite
+ postgresql: POSTGRESQL=--db postgresql
+ mysql: MYSQL=--db mysql
+ oracle: ORACLE=--db oracle --low-connections
+ mssql: MSSQL=--db pymssql
+
+# tox as of 2.0 blocks all environment variables from the
+# outside, unless they are here (or in TOX_TESTENV_PASSENV,
+# wildcards OK). Need at least these
+passenv=ORACLE_HOME NLS_LANG
-[testenv:py33-sqla09]
-recreate=True
-
-[testenv:py34-sqla11]
-recreate=True
-
-[testenv:py34-sqla10]
-recreate=True
-
-[testenv:py34-sqla09]
-recreate=True
-
-[testenv:py35-sqla11]
-recreate=True
-
-[testenv:py35-sqla10]
-recreate=True
+commands=
+ {env:BASECOMMAND} {env:WORKERS} {env:SQLITE:} {env:POSTGRESQL:} {env:MYSQL:} {env:ORACLE:} {env:MSSQL:} {env:BACKENDONLY:} {env:COVERAGE:} {posargs}
-[testenv:py35-sqla09]
-recreate=True
+# note: oracle will need newer provisioning logic for oracle to work
+#
+# {oracle}: python reap_oracle_dbs.py
-[testenv:coverage]
-# see also .coveragerc
-deps=coverage
-commands=
- python -m pytest --cov=alembic --cov-report term --cov-report xml {posargs}
[testenv:pep8]
deps=flake8
[flake8]
show-source = True
-ignore = E711,E712,E721
+ignore = E711,E712,E721,D
# F841,F811,F401
exclude=.venv,.git,.tox,dist,doc,*egg,build