Skip to content

pytest_cov.__version__ string is broken on >=2.10.1 #468

@christophebedard

Description

@christophebedard

Summary

Expected vs actual result

I expect pytest_cov.__version__ == 'x.y.z', but as of 2.10.1 it's pytest_cov.__version__ == "__version__ = 'x.y.z'": da61b91#diff-cfb899e3f5cac1afba8f5bafcd74392faf2677836ed2f3b068217df610ea6e82R2

This broke code that relied on the version string. There's no explanation in the CHANGELOG:

pytest-cov/CHANGELOG.rst

Lines 36 to 42 in 2cd0094

2.10.1 (2020-08-14)
-------------------
* Support for ``pytest-xdist`` 2.0, which breaks compatibility with ``pytest-xdist`` before 1.22.3 (from 2017).
Contributed by Zac Hatfield-Dodds in `#412 <https://github.com/pytest-dev/pytest-cov/pull/412>`_.
* Fixed the ``LocalPath has no attribute startswith`` failure that occurred when using the ``pytester`` plugin
in inline mode.

Looking at PEP 396 I'm not sure this is valid: https://www.python.org/dev/peps/pep-0396/#id27

Reproducer

Versions

Output of relevant packages pip list, python --version, pytest --version etc.

$ python3 --version
Python 3.8.5
$ pytest --version
pytest 6.2.2
$ pytest --version --version
This is pytest version 6.2.2, imported from /home/chris/.local/lib/python3.8/site-packages/pytest/__init__.py
setuptools registered plugins:
  pytest-rerunfailures-9.1.1 at /home/chris/.local/lib/python3.8/site-packages/pytest_rerunfailures.py
  pytest-repeat-0.9.1 at /home/chris/.local/lib/python3.8/site-packages/pytest_repeat.py
  pytest-cov-2.11.1 at /home/chris/.local/lib/python3.8/site-packages/pytest_cov/plugin.py
  colcon-core-0.6.1 at /usr/lib/python3/dist-packages/colcon_core/pytest/hooks.py
  pytest-mock-1.10.4 at /usr/lib/python3/dist-packages/pytest_mock.py

Config

N/A

Code

>>> from pkg_resources import parse_version
>>> from pytest_cov import __version__ as pytest_cov_version
>>> pytest_cov_version
"__version__ = '2.11.1'"
>>> parse_version('2.11.1') >= parse_version('2.5.0')
True
>>> parse_version(pytest_cov_version) >= parse_version('2.5.0')
False

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions