forked from pool/python-pytest-tldr
Add upstream patch pytest9.patch to make it compatible with pytest 9.0, gh#freakboy3742/pytest-tldr@861b6a06575e
140 lines
5.2 KiB
Diff
140 lines
5.2 KiB
Diff
From 861b6a06575e764d751eee4aa7929b21cee7e32e Mon Sep 17 00:00:00 2001
|
|
From: Konrad Weihmann <46938494+priv-kweihmann@users.noreply.github.com>
|
|
Date: Mon, 10 Nov 2025 23:57:15 +0100
|
|
Subject: [PATCH] Adapt to API deprecation in pytest 9.x (#39)
|
|
|
|
Signed-off-by: Konrad Weihmann <kweihmann@outlook.com>
|
|
Co-authored-by: Russell Keith-Magee <russell@keith-magee.com>
|
|
---
|
|
.github/dependabot.yml | 19 +++++++
|
|
.github/workflows/ci.yml | 57 +++++--------------
|
|
.github/workflows/pre-commit-update.yml | 18 ++++++
|
|
.pre-commit-config.yaml | 32 +++--------
|
|
changes/39.feature.1.rst | 1 +
|
|
changes/39.feature.2.rst | 1 +
|
|
changes/39.feature.3.rst | 1 +
|
|
changes/39.removal.1.rst | 1 +
|
|
changes/39.removal.2.rst | 1 +
|
|
pyproject.toml | 74 ++++++++++++++++++++-----
|
|
pytest_tldr.py | 31 +++--------
|
|
tests/test_plugins.py | 2 +-
|
|
tests/test_unittest.py | 10 ----
|
|
tox.ini | 49 +++-------------
|
|
14 files changed, 144 insertions(+), 153 deletions(-)
|
|
create mode 100644 .github/dependabot.yml
|
|
create mode 100644 .github/workflows/pre-commit-update.yml
|
|
create mode 100644 changes/39.feature.1.rst
|
|
create mode 100644 changes/39.feature.2.rst
|
|
create mode 100644 changes/39.feature.3.rst
|
|
create mode 100644 changes/39.removal.1.rst
|
|
create mode 100644 changes/39.removal.2.rst
|
|
|
|
Index: pytest-tldr-0.2.5/pytest_tldr.py
|
|
===================================================================
|
|
--- pytest-tldr-0.2.5.orig/pytest_tldr.py
|
|
+++ pytest-tldr-0.2.5/pytest_tldr.py
|
|
@@ -6,17 +6,6 @@ import pluggy
|
|
import py
|
|
import pytest
|
|
|
|
-try:
|
|
- from pytest import ExitCode
|
|
-except ImportError:
|
|
- # PyTest <5 compatibibility
|
|
- from _pytest.main import EXIT_OK, EXIT_TESTSFAILED
|
|
-
|
|
- class ExitCode:
|
|
- OK = EXIT_OK
|
|
- TESTS_FAILED = EXIT_TESTSFAILED
|
|
-
|
|
-
|
|
__version__ = "0.2.5"
|
|
|
|
|
|
@@ -35,12 +24,11 @@ def pytest_configure(config):
|
|
|
|
def _plugin_nameversions(plugininfo):
|
|
values = []
|
|
- for plugin, dist in plugininfo:
|
|
+ for _, dist in plugininfo:
|
|
# gets us name and version!
|
|
- name = "{dist.project_name}-{dist.version}".format(dist=dist)
|
|
+ name = f"{dist.project_name}-{dist.version}"
|
|
# questionable convenience, but it keeps things short
|
|
- if name.startswith("pytest-"):
|
|
- name = name[7:]
|
|
+ name = name.removeprefix("pytest-")
|
|
# we decided to print python package names
|
|
# they can have more than one plugin
|
|
if name not in values:
|
|
@@ -71,7 +59,7 @@ class TLDRReporter:
|
|
# Plugin compatibility methods.
|
|
#
|
|
# TLDR overwrites TerminalReporter, but some plugins depend
|
|
- # on the outout capabilities of TerminalReporter. Preserve them,
|
|
+ # on the output capabilities of TerminalReporter. Preserve them,
|
|
# to the extent possible.
|
|
######################################################################
|
|
|
|
@@ -158,7 +146,7 @@ class TLDRReporter:
|
|
self.print(f"pluggy=={pluggy.__version__}")
|
|
|
|
headers = self.config.hook.pytest_report_header(
|
|
- config=self.config, startdir=py.path.local()
|
|
+ config=self.config, start_path=py.path.local()
|
|
)
|
|
for header in headers:
|
|
if isinstance(header, str):
|
|
@@ -330,14 +318,9 @@ class TLDRReporter:
|
|
self.print()
|
|
|
|
self.print("-" * 78)
|
|
- self.print(
|
|
- "Ran {n_tests} tests in {duration:.2f}s".format(
|
|
- n_tests=self._n_tests,
|
|
- duration=duration,
|
|
- )
|
|
- )
|
|
+ self.print(f"Ran {self._n_tests} tests in {duration:.2f}s")
|
|
|
|
- if exitstatus in {ExitCode.OK, ExitCode.TESTS_FAILED}:
|
|
+ if exitstatus in {pytest.ExitCode.OK, pytest.ExitCode.TESTS_FAILED}:
|
|
self.config.hook.pytest_terminal_summary(
|
|
config=self.config,
|
|
terminalreporter=self,
|
|
Index: pytest-tldr-0.2.5/tests/test_plugins.py
|
|
===================================================================
|
|
--- pytest-tldr-0.2.5.orig/tests/test_plugins.py
|
|
+++ pytest-tldr-0.2.5/tests/test_plugins.py
|
|
@@ -10,7 +10,7 @@ def test_coverage(testdir):
|
|
result.stdout.fnmatch_lines(
|
|
[
|
|
"test_coverage.py::test_coverage ... ok",
|
|
- "*_____ coverage: platform *_____",
|
|
+ "* coverage: platform *",
|
|
"Name Stmts Miss Cover",
|
|
"--------------------------------------",
|
|
"test_coverage.py 2 0 100%",
|
|
Index: pytest-tldr-0.2.5/tests/test_unittest.py
|
|
===================================================================
|
|
--- pytest-tldr-0.2.5.orig/tests/test_unittest.py
|
|
+++ pytest-tldr-0.2.5/tests/test_unittest.py
|
|
@@ -1,6 +1,3 @@
|
|
-import sys
|
|
-
|
|
-
|
|
def test_pass(testdir):
|
|
testdir.makepyfile(
|
|
"""
|
|
@@ -127,10 +124,3 @@ def test_upass(testdir):
|
|
"*::TestCase::test_unexpected_success ... unexpected success",
|
|
]
|
|
)
|
|
-
|
|
- # pytest under Python2 reports an unexpected pass as a success,
|
|
- # but a failure under Python3.
|
|
- if sys.version_info.major == 2:
|
|
- assert result.ret == 0
|
|
- else:
|
|
- assert result.ret == 1
|