-
Notifications
You must be signed in to change notification settings - Fork 0
/
tox.ini
154 lines (142 loc) · 6.32 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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
# File: tox.ini (Templated version)
#
##
[local_settings]
# project specific local settings
test_pattern = "*Tests.py"
#
# Source paths (unquoted and space separated list of files/directories) for linting and format checks
source_paths = wwpdb/utils/emdb wwpdb/utils/tests-emdb setup.py
#
# Start directory path for test discovery
# Each path must reference valid directory that is searchable by python3.9 (i.e. contains __init__.py)
# ** It is harmless to point to paths containing no tests.
#
test_path_1 = "wwpdb/utils/tests-emdb"
# These are placeholders valid source directories without tests files
test_path_2 = "wwpdb/utils/emdb"
test_path_3 = "wwpdb/utils/emdb"
test_path_4 = "wwpdb/utils/emdb"
#
# Comma separate list of directories/patterns for which test coverage will be evaluated
coverage_source_paths = "wwpdb/utils/emdb,wwpdb/utils/tests-emdb"
coverage_exclude_paths = "wwpdb/__init__.py,wwpdb/utils/tests-emdb/test-output/*,wwpdb/utils/emdb/cif_emdb_translator/generatedsnamespaces.py,wwpdb/utils/emdb/emdb_xml2cif_translator/*"
coverage_cutoff = 31
#
# Comma list of directories to exclude from flake
flake_exclude_paths = --exclude wwpdb/utils/tests-emdb/test-output,wwpdb/utils/emdb/cif_emdb_translator/emdb.py,wwpdb/utils/emdb/emdb_xml2cif_translator,wwpdb/utils/emdb/cif_emdb_translator/generatedsnamespaces.py
# Comma list of directories to exclude from pylint
pylint_exclude_paths = --ignore=emdb.py,emdb_xml2cif_translator,em_emd_conversion.py,test_cif_to_xml_translator.py,simple_test.py
# Comma list of directories to exclude from black
black_exclude_paths = --exclude (wwpdb/utils/emdb/emdb_xml2cif_translator|emdb.py)
## --------------------------------------------------------------------------
## ---------- No project specific setting beyond this point --------------
# Updated: 3-Jul-2019 jdw Cleanup
# 8-Jul-2019 jdw Disable flake8 plugin (pydocstyle compat issue)
# 12-Jul-2019 jdw Add placeholders for up to four test paths
# 13-Jul-2019 jdw Add coverage exclusion
# 21-Nov-2019 jdw py27->py38 update black version
##
[tox]
# The complete list of supported test environments to setup and invoke
envlist = format_pep8-{py310}, lint_pylint-{py310}, format_black-{py310}, py{310,27}, test_coverage-{py310}
#
minversion = 3.4.0
skip_missing_interpreters = true
skipsdist = false
[testenv]
passenv = CONFIG_SUPPORT_TOKEN_ENV
allowlist_externals = echo
commands =
echo "Starting default tests in testenv"
basepython = py312: python3.12
py311: python3.11
py310: python3.10
py39: python3.9
py27: python2.7
[testenv:py3{9,10,11,12},py27]
description = 'Run unit tests (unittest runner) using {envpython}'
platform=
macos: darwin
linux: linux
skip_install = false
recreate = true
alwayscopy=true
usedevelop=true
deps = -r requirements.txt
commands =
echo "Starting {envname}"
{envpython} -V
{envpython} -m unittest discover -v --start-directory {[local_settings]test_path_1} --pattern "{[local_settings]test_pattern}"
{envpython} -m unittest discover -v --start-directory {[local_settings]test_path_2} --pattern "{[local_settings]test_pattern}"
{envpython} -m unittest discover -v --start-directory {[local_settings]test_path_3} --pattern "{[local_settings]test_pattern}"
{envpython} -m unittest discover -v --start-directory {[local_settings]test_path_4} --pattern "{[local_settings]test_pattern}"
echo "Completed {envname}"
#
[testenv:format_pep8-py3{9,10,11,12}]
description = 'Run selected PEP8 compliance checks (flake8)'
platform=
macos: darwin
linux: linux
deps =
flake8
# This plugin is no longer compatible with latest pydocstyles -
# flake8-docstrings>=0.2.7
flake8-import-order>=0.9
-r requirements.txt
commands =
# Exceptions: D for docstrings, I for imports order and formatting, E302 is slice spacing - W503 multiline spacing incompatible with black
flake8 --max-line-length=248 --ignore=D,I,E203,W503 {[local_settings]source_paths} {[local_settings]flake_exclude_paths}
#
[testenv:lint_pylint-py3{9,10,11,12}]
description = 'Run linting compliance checks (pylint)'
platform=
macos: darwin
linux: linux
deps =
pylint
-r requirements.txt
commands =
echo "Starting {envname}"
pylint --disable=R,C --reports=n --rcfile={toxinidir}/pylintrc {[local_settings]pylint_exclude_paths} {[local_settings]source_paths}
echo "Completed {envname}"
#
[testenv:format_black-py3{9,10,11,12}]
description = 'Run format compliance checks (black)'
platform=
macos: darwin
linux: linux
deps =
black>=19.10b0
-r requirements.txt
# isort>=4.3.20
commands =
echo "Starting {envname}"
black --check --line-length 180 {[local_settings]black_exclude_paths} {[local_settings]source_paths}
# isort -rc rcsb/utils --check-only
echo "Completed {envname}"
#
[testenv:test_coverage-py3{9,10,11,12}]
description = 'Run test coverage analysis'
platform=
macos: darwin
linux: linux
recreate = true
alwayscopy=true
usedevelop=true
deps =
coverage
-r requirements.txt
commands =
echo "Starting {envname}"
coverage erase
coverage run --parallel-mode --omit="{[local_settings]coverage_exclude_paths}" --source="{[local_settings]coverage_source_paths}" -m unittest discover -v --start-directory {[local_settings]test_path_1} --pattern "{[local_settings]test_pattern}"
coverage run --parallel-mode --omit="{[local_settings]coverage_exclude_paths}" --source="{[local_settings]coverage_source_paths}" -m unittest discover -v --start-directory {[local_settings]test_path_2} --pattern "{[local_settings]test_pattern}"
coverage run --parallel-mode --omit="{[local_settings]coverage_exclude_paths}" --source="{[local_settings]coverage_source_paths}" -m unittest discover -v --start-directory {[local_settings]test_path_3} --pattern "{[local_settings]test_pattern}"
coverage run --parallel-mode --omit="{[local_settings]coverage_exclude_paths}" --source="{[local_settings]coverage_source_paths}" -m unittest discover -v --start-directory {[local_settings]test_path_4} --pattern "{[local_settings]test_pattern}"
echo " ------- Consolidating {envname} data ----------"
coverage combine
echo " ------- Building {envname} reports ----------"
coverage report --fail-under={[local_settings]coverage_cutoff}
- coverage xml
echo "Completed {envname}"