Merge pull request #8761 from nicoddemus/version-tuple
This commit is contained in:
commit
ced125ad15
|
@ -0,0 +1 @@
|
||||||
|
New :ref:`version-tuple` attribute, which makes it simpler for users to do something depending on the pytest version (such as declaring hooks which are introduced in later versions).
|
|
@ -226,6 +226,37 @@ Marks a test function as *expected to fail*.
|
||||||
a new release of a library fixes a known bug).
|
a new release of a library fixes a known bug).
|
||||||
|
|
||||||
|
|
||||||
|
pytest.__version__
|
||||||
|
~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
The current pytest version, as a string::
|
||||||
|
|
||||||
|
>>> import pytest
|
||||||
|
>>> pytest.__version__
|
||||||
|
'7.0.0'
|
||||||
|
|
||||||
|
|
||||||
|
.. _`version-tuple`:
|
||||||
|
|
||||||
|
pytest.version_tuple
|
||||||
|
~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
.. versionadded:: 7.0
|
||||||
|
|
||||||
|
The current pytest version, as a tuple::
|
||||||
|
|
||||||
|
>>> import pytest
|
||||||
|
>>> pytest.version_tuple
|
||||||
|
(7, 0, 0)
|
||||||
|
|
||||||
|
For pre-releases, the last component will be a string with the prerelease version::
|
||||||
|
|
||||||
|
>>> import pytest
|
||||||
|
>>> pytest.version_tuple
|
||||||
|
(7, 0, '0rc1')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Custom marks
|
Custom marks
|
||||||
~~~~~~~~~~~~
|
~~~~~~~~~~~~
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
__all__ = ["__version__"]
|
__all__ = ["__version__", "version_tuple"]
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from ._version import version as __version__
|
from ._version import version as __version__, version_tuple
|
||||||
except ImportError:
|
except ImportError: # pragma: no cover
|
||||||
# broken installation, we don't even try
|
# broken installation, we don't even try
|
||||||
# unknown only works because we do poor mans version compare
|
# unknown only works because we do poor mans version compare
|
||||||
__version__ = "unknown"
|
__version__ = "unknown"
|
||||||
|
version_tuple = (0, 0, "unknown") # type:ignore[assignment]
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
"""pytest: unit and functional testing with Python."""
|
"""pytest: unit and functional testing with Python."""
|
||||||
from . import collect
|
from . import collect
|
||||||
from _pytest import __version__
|
from _pytest import __version__
|
||||||
|
from _pytest import version_tuple
|
||||||
from _pytest._code import ExceptionInfo
|
from _pytest._code import ExceptionInfo
|
||||||
from _pytest.assertion import register_assert_rewrite
|
from _pytest.assertion import register_assert_rewrite
|
||||||
from _pytest.cacheprovider import Cache
|
from _pytest.cacheprovider import Cache
|
||||||
|
@ -130,6 +131,7 @@ __all__ = [
|
||||||
"Session",
|
"Session",
|
||||||
"set_trace",
|
"set_trace",
|
||||||
"skip",
|
"skip",
|
||||||
|
"version_tuple",
|
||||||
"TempPathFactory",
|
"TempPathFactory",
|
||||||
"Testdir",
|
"Testdir",
|
||||||
"TempdirFactory",
|
"TempdirFactory",
|
||||||
|
|
|
@ -19,6 +19,12 @@ def test_version_less_verbose(pytester: Pytester, pytestconfig, monkeypatch) ->
|
||||||
result.stderr.fnmatch_lines([f"pytest {pytest.__version__}"])
|
result.stderr.fnmatch_lines([f"pytest {pytest.__version__}"])
|
||||||
|
|
||||||
|
|
||||||
|
def test_versions():
|
||||||
|
"""Regression check for the public version attributes in pytest."""
|
||||||
|
assert isinstance(pytest.__version__, str)
|
||||||
|
assert isinstance(pytest.version_tuple, tuple)
|
||||||
|
|
||||||
|
|
||||||
def test_help(pytester: Pytester) -> None:
|
def test_help(pytester: Pytester) -> None:
|
||||||
result = pytester.runpytest("--help")
|
result = pytester.runpytest("--help")
|
||||||
assert result.ret == 0
|
assert result.ret == 0
|
||||||
|
|
Loading…
Reference in New Issue