]> git.phdru.name Git - sqlconvert.git/blobdiff - tox.ini
CI(AppVeyor): Move `validators.py` -> `devscripts/CI/`
[sqlconvert.git] / tox.ini
diff --git a/tox.ini b/tox.ini
index 8fb179e6389b6135145abc3241764f07fcb27197..78de300d5adf462e62ec4e644b9d870291c6ab57 100644 (file)
--- a/tox.ini
+++ b/tox.ini
@@ -1,33 +1,36 @@
 [tox]
-minversion = 1.8
-envlist = {py26,py27,py34},{py26,py27,py34}-postgres,{py27,py34}-flake8
+minversion = 2.0
+envlist = py{27,34,35,36,37}{,-sqlite},py{27,37}-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}
+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
+    cmd
     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]
 commands = {[general]commands}
@@ -35,16 +38,23 @@ commands = {[general]commands}
 [testenv:py34]
 commands = {[general]commands}
 
+[testenv:py35]
+commands = {[general]commands}
+
+[testenv:py36]
+commands = {[general]commands}
+
+[testenv:py37]
+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}
@@ -52,12 +62,110 @@ 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}
+
+[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 =
+    cmd /c "copy devscripts\\CI\\validators.py {envsitepackagesdir}\\formencode\\validators.py"
+    {[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}
+
+[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 =
+    cmd /c "copy validators.py {envsitepackagesdir}\\formencode\\validators.py"
+    {[sqlite-w32]commands}
+
+# flake8
 [testenv:py27-flake8]
 deps =
     flake8
-commands = flake8 demo scripts sqlconvert tests
+commands =
+    {[testenv]commands}
+    flake8
 
-[testenv:py34-flake8]
+[testenv:py37-flake8]
 deps =
     flake8
-commands = flake8 demo scripts sqlconvert tests
+commands =
+    {[testenv]commands}
+    flake8