[tox]
-minversion = 1.8
-envlist = {py26,py27,py34},{py26,py27,py34}-postgres,{py27,py34}-flake8
+minversion = 3.15
+envlist = py27,py3{4,5,6,7,8,9}{,-sqlite},py{27,39}-flake8
# Base test environment settings
[testenv]
+basepython =
+ py27: {env:TOXPYTHON:python2.7}
+ py34: {env:TOXPYTHON:python3.4}
+ py35: {env:TOXPYTHON:python3.5}
+ py36: {env:TOXPYTHON:python3.6}
+ py37: {env:TOXPYTHON:python3.7}
+ py38: {env:TOXPYTHON:python3.8}
+ py39: {env:TOXPYTHON:python3.9}
+commands =
+ {envpython} --version
+ {envpython} -c "import struct; print(struct.calcsize('P') * 8)"
deps =
- sqlparse
- pytest
- pytest-cov
- py26: argparse
- py26,py27: SQLObject>=2.2.1
- py34: SQLObject>=3.0.0
- py26,py27: m_lib>=2.0
- py34: m_lib>=3.0
- postgres: psycopg2
-sitepackages = True
+ -rdevscripts/requirements/requirements_tests.txt
+ postgres: psycopg2-binary
+passenv = PGPASSWORD
+platform = linux
# Don't fail or warn on uninstalled commands
whitelist_externals =
- flake8
createdb
dropdb
[general]
commands =
- python -m pytest --cov=sqlconvert
- rm -f *.tmp
-
-[testenv:py26]
-commands = {[general]commands}
+ {[testenv]commands}
+ {envpython} -m pytest --cov=sqlconvert
+ {envpython} {envbindir}/mysql2sql -P demo/demo.sql test.out
+ cmp.py -i tests/mysql2sql/test.out test.out
+ rm.py -f test.out
[testenv:py27]
+platform = linux|win32
commands = {[general]commands}
[testenv:py34]
+platform = linux|win32
+commands = {[general]commands}
+
+[testenv:py35]
+platform = linux|win32
+commands = {[general]commands}
+
+[testenv:py36]
+platform = linux|win32
+commands = {[general]commands}
+
+[testenv:py37]
+platform = linux|win32
+commands = {[general]commands}
+
+[testenv:py38]
+platform = linux|win32
+commands = {[general]commands}
+
+[testenv:py39]
+platform = linux|win32
commands = {[general]commands}
# PostgreSQL test environments
[postgresql]
commands =
- createdb test
- python -m pytest -D postgres:///test
- dropdb test
- rm -f *.tmp
-
-[testenv:py26-postgres]
-commands = {[postgresql]commands}
+ {[testenv]commands}
+ -dropdb -U postgres -w test
+ createdb -U postgres -w test
+ {envpython} -m pytest --cov=sqlconvert -D postgres://postgres:@localhost/test
+ dropdb -U postgres -w test
[testenv:py27-postgres]
commands = {[postgresql]commands}
[testenv:py34-postgres]
commands = {[postgresql]commands}
+[testenv:py35-postgres]
+commands = {[postgresql]commands}
+
+[testenv:py36-postgres]
+commands = {[postgresql]commands}
+
+[testenv:py37-postgres]
+commands = {[postgresql]commands}
+
+[testenv:py38-postgres]
+commands = {[postgresql]commands}
+
+[testenv:py39-postgres]
+commands = {[postgresql]commands}
+
+[postgres-w32]
+platform = win32
+commands =
+ {[testenv]commands}
+ -dropdb -U postgres -w test
+ createdb -U postgres -w test
+ pytest --cov=sqlconvert -D "postgres://postgres:Password12!@localhost/test"
+ dropdb -U postgres -w test
+
+[testenv:py27-postgres-w32]
+platform = win32
+commands = {[postgres-w32]commands}
+
+[testenv:py34-postgres-w32]
+platform = win32
+commands = {[postgres-w32]commands}
+
+[testenv:py35-postgres-w32]
+platform = win32
+commands = {[postgres-w32]commands}
+
+[testenv:py36-postgres-w32]
+platform = win32
+commands = {[postgres-w32]commands}
+
+[testenv:py37-postgres-w32]
+platform = win32
+commands =
+ {[postgres-w32]commands}
+
+[testenv:py38-postgres-w32]
+platform = win32
+commands =
+ {[postgres-w32]commands}
+
+[testenv:py39-postgres-w32]
+platform = win32
+commands =
+ {[postgres-w32]commands}
+
+# SQLite test environments
+[sqlite]
+commands =
+ {[testenv]commands}
+ -rm.py -f /tmp/test.sqdb
+ {envpython} -m pytest --cov=sqlconvert -D sqlite:///tmp/test.sqdb
+ rm.py -f /tmp/test.sqdb
+
+[testenv:py27-sqlite]
+commands = {[sqlite]commands}
+
+[testenv:py34-sqlite]
+commands = {[sqlite]commands}
+
+[testenv:py35-sqlite]
+commands = {[sqlite]commands}
+
+[testenv:py36-sqlite]
+commands = {[sqlite]commands}
+
+[testenv:py37-sqlite]
+commands = {[sqlite]commands}
+
+[testenv:py38-sqlite]
+commands = {[sqlite]commands}
+
+[testenv:py39-sqlite]
+commands = {[sqlite]commands}
+
+[sqlite-w32]
+platform = win32
+commands =
+ {[testenv]commands}
+ -rm.py -f C:/projects/sqlconvert/test.sqdb
+ pytest --cov=sqlconvert -D sqlite:/C:/projects/sqlconvert/test.sqdb?debug=1
+ rm.py -f C:/projects/sqlconvert/test.sqdb
+
+[testenv:py27-sqlite-w32]
+platform = win32
+commands = {[sqlite-w32]commands}
+
+[testenv:py34-sqlite-w32]
+platform = win32
+commands = {[sqlite-w32]commands}
+
+[testenv:py35-sqlite-w32]
+platform = win32
+commands = {[sqlite-w32]commands}
+
+[testenv:py36-sqlite-w32]
+platform = win32
+commands = {[sqlite-w32]commands}
+
+[testenv:py37-sqlite-w32]
+platform = win32
+commands =
+ {[sqlite-w32]commands}
+
+[testenv:py38-sqlite-w32]
+platform = win32
+commands =
+ {[sqlite-w32]commands}
+
+[testenv:py39-sqlite-w32]
+platform = win32
+commands =
+ {[sqlite-w32]commands}
+
+# flake8
[testenv:py27-flake8]
+platform = linux|win32
deps =
flake8
-commands = flake8 demo scripts sqlconvert tests
+commands =
+ {[testenv]commands}
+ flake8
-[testenv:py34-flake8]
+[testenv:py39-flake8]
+platform = linux|win32
deps =
flake8
-commands = flake8 demo scripts sqlconvert tests
+commands =
+ {[testenv]commands}
+ flake8