Mercurial > p > roundup > code
view pyproject.toml @ 7906:470616e64414
issue2551334 - get test suite running under windows
Fix test_cgi under windows. Few classes of errors:
1) comparing paths with a/b (unix) to a\b (windows). Use normpath to
fix it. Also change regexps used for path matching to use either
\ or / for directory separators.
2) database not being closed preventing deletion of test case
directory. Windows doesn't allow deletion of open files.
In some cases replaced calling client.inner_mail() with main()
because main() makes sure to close the database. In other cases
assigned self.db = client.db beacuse client reopens the database
and closes the original self.db. Reassigning allows tearDown to
close the last opened handle to a db.
3) commit the admin password to the database. If it's not commited
calling the code sometimes comes up with a different admin
password. Not sure why we don't see this on linux.
4) run commit() on database so that sqlite databases can be closed
and deleted. Unit tests don't call the main entry points that
have finally clauses to close the databases properly, so do it in
the test.
5) split tests that try to resolve symbolic links in the template
directory to a separate method. Under windows user needs special
permissions to creae symbolic links, so I report the method is
skipped if creating a link fails.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Sat, 27 Apr 2024 23:19:51 -0400 |
| parents | 9c58f5940c20 |
| children | 736f769b48c8 |
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] preview = true explicit-preview-rules = true 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", # errors # enable preview rules: # Error rules indentation "E111", "E112", "E113", # Error whitespace in brackets/around punctuation # around params, tabs/space around operators "E201", "E202", "E203", "E211", "E222", "E223", "E224", "E225", "E226", "E227", "E228", "E231", "E241", "E242", "E251", "E252", "E271", "E272", "E275", # Error blank lines between methods, classes etc. "E301", "E302", "E303", "E304", "E305", "E306", "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 "PLW", # warnings "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
