-
Notifications
You must be signed in to change notification settings - Fork 5
/
tox.ini
125 lines (119 loc) · 4.39 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
# File: tox.ini (Templated version)
#
[local_settings]
# project specific local settings
test_pattern = "test*.py"
fixture_pattern = "fixture*.py"
#
# Source pathls (unquoted and space separated list of files/directories) for linting and format checks
source_paths = rcsb/db setup.py
#
# Start directory path for test discovery
# Each path must reference valid directory that is searchable by Python (i.e. contains __init__.py)
# ** It is harmless to point to paths containing no tests.
#
fixture_path_1 = "rcsb/db/tests"
test_path_1 = "rcsb/db/tests"
test_path_2 = "rcsb/db/tests-mongo"
test_path_3 = "rcsb/db/cli"
test_path_4 = "rcsb/db/cli"
# These are placeholders valid source directories without tests files
#test_path_2 = "rcsb/db/tests-validate"
#test_path_3 = "rcsb/db/tests-mongo"
#test_path_4 = "rcsb/db/tests-mysql"
#
# Comma separate list of directories for which test coverage will be evaluated
coverage_source_paths = "rcsb/db"
coverage_exclude_paths = "rcsb/db/cli/*,rcsb/db/cockroach/*,rcsb/db/crate/*,rcsb/db/tests-crate/*,rcsb/db/tests-cockroach/*"
coverage_cutoff = 65
#
## --------------------------------------------------------------------------
## ---------- 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
# 4-Sep-2019 jdw Add fixture option to establish cache state
# 23-Nov-2019 jdw py27->py38 update black version
# 14-May-2020 jdw simplifying test runner and suppress coverage step
# 28-Oct-2020 jdw py38->py39
# 23-Dec-2022 aae updates for tox 4
# 16-Oct-2024 dwp py39->py310
##
[tox]
# The complete list of supported test environments to setup and invoke
envlist = format_pep8-{py310}, lint_pylint-{py310}, format_black-{py310}, py{310}
#
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 = py310: python3.10
[testenv:py310]
description = 'Run unit tests (unittest runner) using {envpython}'
platform=
macos: darwin
linux: linux
skip_install = false
recreate = true
alwayscopy=true
package = editable-legacy
deps =
-r requirements.txt
commands =
echo "Starting {envname}"
{envpython} -V
{envpython} -m unittest discover -v --start-directory {[local_settings]fixture_path_1} --pattern "{[local_settings]fixture_pattern}"
{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-py310]
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=185 --ignore=D,I,E203,W503 {[local_settings]source_paths}
#
[testenv:lint_pylint-py310]
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]source_paths}
echo "Completed {envname}"
#
[testenv:format_black-py310]
description = 'Run format compliance checks (black)'
platform=
macos: darwin
linux: linux
deps =
black>=20.8b
-r requirements.txt
# isort>=4.3.20
commands =
echo "Starting {envname}"
black --check --line-length 185 {[local_settings]source_paths}
# isort -rc rcsb/utils --check-only
echo "Completed {envname}"
#