-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtox.ini
135 lines (124 loc) · 3.8 KB
/
tox.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
[tox]
envlist =
test-py3{6,7,8,9}-{pyqt5,pyside2}
black
mypy-py3{6,7,8,9}-{pyqt5,pyside2}
minversion = 3.20.1
requires =
virtualenv ~=20.2
[qt]
extras=
pyqt5: pyqt5
pyside2: pyside2
setenv =
pyqt5: SSST_QTS_WRAPPER = pyqt5
pyqt5: QTS_WRAPPER = pyqt5
pyside2: SSST_QTS_WRAPPER = pyside2
pyside2: QTS_WRAPPER = pyside2
# from: bash -c 'source venv/bin/activate && scripts/tox_setenv.sh'
pyqt5: SSST_MYPY_QTS_ARGUMENTS=--always-true=is_pyqt_5_wrapper --always-false=is_pyqt_6_wrapper --always-false=is_pyside_5_wrapper --always-false=is_pyside_6_wrapper
pyqt6: SSST_MYPY_QTS_ARGUMENTS=--always-false=is_pyqt_5_wrapper --always-true=is_pyqt_6_wrapper --always-false=is_pyside_5_wrapper --always-false=is_pyside_6_wrapper
pyside2: SSST_MYPY_QTS_ARGUMENTS=--always-false=is_pyqt_5_wrapper --always-false=is_pyqt_6_wrapper --always-true=is_pyside_5_wrapper --always-false=is_pyside_6_wrapper
pyside6: SSST_MYPY_QTS_ARGUMENTS=--always-false=is_pyqt_5_wrapper --always-false=is_pyqt_6_wrapper --always-false=is_pyside_5_wrapper --always-true=is_pyside_6_wrapper
QT_DEBUG_PLUGINS = 1
[python_info]
commands =
python -m pip freeze --all
# Presently to get an updated pip with tox you must specify all of:
# download = true
# VIRTUALENV_PIP = whatever
# VIRTUALENV_DOWNLOAD = true
# https://github.com/tox-dev/tox/issues/1768
[backtracking]
install_command =
# This can help avoid backtracking while still allowing setup.cfg
# to describe the acceptable version range.
python -m pip install {opts} {packages} --constraint {toxinidir}/constraints/test.txt
setenv =
VIRTUALENV_PIP = 21.0.1
VIRTUALENV_DOWNLOAD = true
[testenv:test-py3{6,7,8,9}-{pyqt5,pyside2}]
download = true
extras =
{[qt]extras}
test
install_command =
{[backtracking]install_command}
setenv =
{[backtracking]setenv}
{[qt]setenv}
commands =
{[python_info]commands}
ssst uic
pytest --verbosity=1 --cov=ssst --qt-api={env:SSST_QTS_WRAPPER} {posargs:--pyargs ssst}
coverage xml
[testenv:black]
basepython = python3.8
extras =
check
setenv =
{[backtracking]setenv}
# TODO: would be nice to install extras but not package...
#skip_install = true
commands =
{[python_info]commands}
black --config {toxinidir}/pyproject.toml --check --diff {toxinidir}
[testenv:format]
basepython = python3.8
extras =
check
setenv =
{[backtracking]setenv}
# TODO: would be nice to install extras but not package...
#skip_install = true
commands =
{[python_info]commands}
black --config {toxinidir}/pyproject.toml {toxinidir}
[testenv:mypy-py3{6,7,8,9}-{pyqt5,pyside2}]
extras =
{[qt]extras}
check
setenv =
{[backtracking]setenv}
{[qt]setenv}
# Mypy looks at the source and the .ui files are built into the paths the projct
# is being run from. To get them to agree we use a develop/--editable install.
usedevelop = true
commands =
{[python_info]commands}
ssst uic
mypy --package ssst --show-error-codes {env:SSST_MYPY_QTS_ARGUMENTS}
[testenv:codecov]
allowlist_externals =
bash
curl
passenv =
CI
GITHUB_*
commands =
curl --output codecov.sh https://codecov.io/bash
bash codecov.sh -Z -n "{env:JOB_NAME:unspecified}" -f 'coverage.xml'
[testenv:freeze-pyinstaller-{pyqt5,pyside2}]
extras =
{[qt]extras}
freeze
setenv =
{[backtracking]setenv}
{[qt]setenv}
commands =
{[python_info]commands}
ssst uic
pyinstaller freeze/pyinstaller.spec
[testenv:test-frozen-{pyqt5,pyside2}]
extras =
{[qt]extras}
test
install_command =
{[backtracking]install_command}
setenv =
{[backtracking]setenv}
{[qt]setenv}
commands =
{[python_info]commands}
pytest --verbosity=1 --cov=ssst --qt-api={env:SSST_QTS_WRAPPER} {posargs:--pyargs ssst --frozen-executable dist/ssst}
coverage xml