Mercurial > p > roundup > code
view pyproject.toml @ 7822:1b7162938988
test: add pyproject.toml: set pytest and ruff project defaults
Pytest 6 is required to use this. This means it works only for python3.
It includes a dummy setting for redis password assuming redis is
running at the default port. This requires pytest-env be installed.
At some point I expect to add project and build-system tables to allow
building using the build package. The version and long_description
specifiers in the project table will be dynamic since the version is
from roundup/__init__.py and description from doc/announcement.txt.
One open issue is how to support the equivalent of:
python setup.py build_doc
to run sphinx over the docs and include them in the share directory
bundled with the distributions.
Modified test_redis_session.py to better handle empty password.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Sat, 23 Mar 2024 02:56:01 -0400 |
| parents | |
| children | 9c58f5940c20 |
line wrap: on
line source
[tool.pytest.ini_options] # Note this only works under python3. Pytest 6.0+ supports # pyproject.toml and is not available for python 2. These settings can # be adapted for pytest.ini if you are running under python2. # For use with packages: # python -m pip install pytest-cov pytest-env pytest-randomly minversion = "6.0" # Disable randomly by default. There are still a few tests that are # order dependent. Enable on cli for python3 only using: # "-p randomly" addopts = "-p no:randomly --durations=10 --strict-markers -r a -v" # Set the redis password to nothing. Can be overridden on cli using: # "-e pytest_redis_pw=mySecretPassword" env = [ "D:pytest_redis_pw=" ] # Don't search random directories to find tests. testpaths = [ "test", ] [tool.ruff] line-length = 128 output-format = "full" exclude = [ # ignore code imported/sourced from other places "roundup/cgi/PageTemplates/*.py", "roundup/cgi/TAL/*.py", "roundup/cgi/ZTUtils/*.py", "roundup/anypy/vendored/*.py", "dicttoxml.py" ] [tool.ruff.lint] select = [ "A", # flake-8-builtins shadowing a builtin "ARG", # flake8-unused-arguments "B", # flake8-bugbear "C4", # flake8-comprehensions "C901", # McCabe complexity "COM", # flake8-commas "E", "F", # pyflakes "G", # logging format _(.... % ...) bad use _(...) % ... "I", # imports "INT", # check gettext "Q", # quoting consistancy "PERF", # performance lint "PIE794", # duplicate class field definition "PL", # pylint "RET", # check for inconistent returns "RUF", # ruff "S", # bandit - security "SIM", # simplify code "T10", # flake8-debugger "W", # pycode whitespace warnings ] ignore = [ # raise from except hander with none or chaining; only python3 "B904", # ### before comments is fine "E266", # ignore double vs. single quotes "Q000", "Q001", "Q002", # do not replace x in (a,b) with x in {a,b} (set). python 3.2 # got a speedup in this; only python 3 "PLR6201", # 505: allow use of else/elif even if it could be removed. # if X: return; elif Z: return; else v -> # if X: return; if Z: return; v # 506: same but with a raise rather than return #"RET505", #"RET506", # use *list to expand; only python 3 "RUF005", # do not use contextlib.suppress rather than except: pass to suppress # exception. contextlib doesn't work in python2 and is slower "SIM105", ] [tool.ruff.lint.per-file-ignores] "roundup/anypy/*.py" = ["RET505", "RET506"] "roundup/dehtml.py" = ["E501"] "roundup/rest.py" = ["E501"] "roundup/support.py" = ["E401"] "roundup/security.py" = ["E701"] "roundup/date.py" = ["E231", "E701"] "roundup/backends/back_sqlite.py" = [ "E203" ] [too.ruff.lint.pylint] max-args = 6 max-branches=20 max-statements = 100 [tool.ruff.lint.mccabe] max-complexity = 50 # #skip= # C901 # E228 # E302 # E401
