blob: 48870efb2aee9d6bf74673d330f055646716ece4 [file] [log] [blame]
[tox]
envlist = py37, py38, py39, coverage, flake8, pylint
[gh-actions]
python =
3.7: py37, coverage, flake8, pylint
3.8: py38, coverage, flake8, pylint
3.9: py39, coverage, flake8, pylint
[testenv]
deps =
pytest
coverage
-rrequirements.txt
commands = coverage run -m pytest {posargs}
passenv = LD_LIBRARY_PATH LD_PRELOAD
[testenv:coverage]
deps = coverage
skip_install = true
commands =
coverage report
coverage html
# Exclude a lot of tests here without turning them off in setup.cfg, because a
# developer might want to see and fix them. This is more of a regression test.
[testenv:flake8]
deps =
flake8
sphinx
sphinx_rtd_theme
recommonmark
commands = flake8 --count --show-source --statistics
# Same rationale as with flake8.
[testenv:pylint]
deps =
pylint
sphinx
sphinx_rtd_theme
recommonmark
wont_fix = invalid-name,protected-access,too-many-lines
maybe_someday = fixme,missing-docstring,line-too-long
commands = pylint --disable={[testenv:pylint]wont_fix},{[testenv:pylint]maybe_someday} Lib/gflanguages
[flake8]
select = E,F,W
exclude =
# Exclude the entire build directory:
build
# Exclude these auto-generated files that should not be hand-edited:
Lib/gflanguages/languages_public_pb2.py,
# No need to traverse hidden directories such as .git, .tox
.*,
# Exclude virtual environment directory:
venv*,
# There's no value in checking cache directories
__pycache__,
# The Sphinx configuration file is mostly autogenerated, ignore it
docs/source/conf.py,
max-line-length=100
ignore =
E126, # continuation line over-indented for hanging indent