PyPy3.8 7.3.10 release should have trace_decorated_def=True · Issue #1515 · nedbat/coveragepy (original) (raw)
Describe the bug
Over in the PyPy issue tracker, we are working on why the recently released PyPy3.8 v7.3.10 fails to pass the coverage tests of pypa/bcrypt. It turns out we changed ast parsing between v7.3.9 and v7.3.10. The parsing is now more like CPython3.8, which means this line needs a tweak
trace_decorated_def = (CPYTHON and PYVERSION >= (3, 8)) or (PYPY and PYVERSION >= (3, 9)) |
---|
To Reproduce
How can we reproduce the problem? Please be specific. Don't link to a failing CI job. Answer the questions below:
- What version of Python are you using?
PyPy3.8 v7.3.10 - What version of coverage.py shows the problem? The output of
coverage debug sys
is helpful.
coverage 7.0.1 - What versions of what packages do you have installed? The output of
pip freeze
is helpful.
bcrypt 4.0.1
pytest 4.6.11
coverage 7.0.1 - What code shows the problem? Give us a specific commit of a specific repo that we can check out. If you've already worked around the problem, please provide a commit before that fix.
trace_decorated_def = (CPYTHON and PYVERSION >= (3, 8)) or (PYPY and PYVERSION >= (3, 9)) - What commands did you run?
# in a bcrypt git repo
pypy -m coverage run -m pytest --strict-markers
pypy -m coverage combine
pypy -m coverage report -m --fail-under 100
Name Stmts Miss Branch BrPart Cover Missing
-------------------------------------------------------
bcrypt/__about__.py 12 0 0 0 100%
bcrypt/__init__.py 38 0 18 0 100%
tests/test_bcrypt.py 97 9 24 0 78% 208, 214, 230, 235, 240, 245, 250, 447, 486
-------------------------------------------------------
TOTAL 147 9 42 0 86%
Coverage failure: total of 86 is less than fail-under=100
Expected behavior
Tests are expected to pass
Additional context
I think it is sufficient to modify the line to this, which is "any implementation 3.8 or greater, or pypy greater than 3.8 or pypy3.8 greater than 7.3.9 (7.3.9 was the last pypy3.7)
trace_decorated_def = (PYVERSION >= (3, 8)) and (not PYPY or (PYVERSION > (3, 8)) or (PYPYVERSION > (7, 3, 9)))