14
0
forked from pool/python-nose2

- update to 0.14.1:

* Fix the reporting of skipped tests in verbose mode on newer
    pythons (3.12.1+), in which a skipped test is no longer
    treated as "started". nose2 will not introduce a
    StartTestEvent in such cases -- the fix is narrowly and
    adjustment to the test reporter.
  * Fix the reporting of skipped tests in verbose mode on newer
    pythons (3.12.1+), in which a skipped test is no longer
    treated as "started".
  * nose2 will not introduce a StartTestEvent in such cases --
    the fix is narrowly and adjustment to the test reporter.
- drop support-python312.patch (upstream)

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-nose2?expand=0&rev=27
This commit is contained in:
2024-02-09 21:44:10 +00:00
committed by Git OBS Bridge
parent 87c0f61994
commit 60a14d5634
5 changed files with 21 additions and 115 deletions

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5c28d770a0b9a702862bd6c3755ba2cd2f7994dd518c982e5ce298d7f37466a4
size 167278

3
nose2-0.14.1.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7f8f03a21c9de2c33015933afcef72bf8e4a2d5dfec3b40092287de6e41b093a
size 166944

View File

@@ -1,3 +1,19 @@
-------------------------------------------------------------------
Fri Feb 9 21:43:46 UTC 2024 - Dirk Müller <dmueller@suse.com>
- update to 0.14.1:
* Fix the reporting of skipped tests in verbose mode on newer
pythons (3.12.1+), in which a skipped test is no longer
treated as "started". nose2 will not introduce a
StartTestEvent in such cases -- the fix is narrowly and
adjustment to the test reporter.
* Fix the reporting of skipped tests in verbose mode on newer
pythons (3.12.1+), in which a skipped test is no longer
treated as "started".
* nose2 will not introduce a StartTestEvent in such cases --
the fix is narrowly and adjustment to the test reporter.
- drop support-python312.patch (upstream)
-------------------------------------------------------------------
Mon Jan 8 05:39:22 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com>

View File

@@ -18,7 +18,7 @@
%{?sle15_python_module_pythons}
Name: python-nose2
Version: 0.14.0
Version: 0.14.1
Release: 0
Summary: The successor to the Python testing framework nose, based on unittest
License: BSD-2-Clause AND Python-2.0
@@ -26,8 +26,6 @@ URL: https://github.com/nose-devs/nose2
Source: https://files.pythonhosted.org/packages/source/n/nose2/nose2-%{version}.tar.gz
# Required for testsuite. Bring on python-wheel-wheel
Source1: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl
# PATCH-FIX-UPSTREAM Based on gh#nose-devs/nose2#593
Patch0: support-python312.patch
BuildRequires: %{python_module coverage}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools-wheel}
@@ -36,7 +34,7 @@ BuildRequires: %{python_module wheel}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires(post): update-alternatives
Requires(postun):update-alternatives
Requires(postun): update-alternatives
Suggests: python-coverage
BuildArch: noarch
%python_subpackages

View File

@@ -1,108 +0,0 @@
From 58cbe5ff35e2cc0633e7ff7c46d48a66d597a025 Mon Sep 17 00:00:00 2001
From: Stephen Rosen <sirosen@globus.org>
Date: Thu, 21 Dec 2023 20:25:22 -0600
Subject: [PATCH 1/2] Fix verbose reporting of skipped tests
On 3.12.1+, unittest doesn't call `startTest` for skipped tests. This
is treated as a fix to how tests are counted, which is why it appeared
in a point release.
Because the nose2 path for test reporting uses the test result methods
as the point of connection between `unittest` and nose2 plugins,
losing the `startTest` call in this case means that the reporter
plugin doesn't emit proper output.
The test result object now tracks whether or not a test has been
started, and the reporter will check this attribute to ensure that the
skipped test output is correct.
---
docs/changelog.rst | 6 ++++++
nose2/plugins/result.py | 12 +++++++++---
nose2/result.py | 4 ++++
nose2/tests/functional/test_junitxml_plugin.py | 2 +-
4 files changed, 20 insertions(+), 4 deletions(-)
diff --git a/docs/changelog.rst b/docs/changelog.rst
index 18ec30f5..5e1c46c1 100644
--- a/docs/changelog.rst
+++ b/docs/changelog.rst
@@ -13,6 +13,12 @@ testsuites.
Unreleased
----------
+* Fix the reporting of skipped tests in verbose mode on newer pythons (3.12.1+),
+ in which a skipped test is no longer treated as "started".
+
+ ``nose2`` will not introduce a ``StartTestEvent`` in such cases --
+ the fix is narrowly and adjustment to the test reporter.
+
0.14.0 (2023-10-04)
-------------------
diff --git a/nose2/plugins/result.py b/nose2/plugins/result.py
index fe953129..fb95ec7a 100644
--- a/nose2/plugins/result.py
+++ b/nose2/plugins/result.py
@@ -80,6 +80,9 @@ def testOutcome(self, event):
etc)
"""
+ if not event.result.test_started:
+ self._show_test_description(self.stream, event.test)
+
if event.outcome == result.ERROR:
self.reportCategories["errors"].append(event)
self._reportError(event)
@@ -145,11 +148,14 @@ def _reportStartTest(self, event):
self.session.hooks.reportStartTest(evt)
if evt.handled:
return
+ self._show_test_description(evt.stream, event.test)
+
+ def _show_test_description(self, stream, test):
if self.session.verbosity > 1:
# allow other plugins to override/spy on stream
- evt.stream.write(self._getDescription(event.test, errorList=False))
- evt.stream.write(" ... ")
- evt.stream.flush()
+ stream.write(self._getDescription(test, errorList=False))
+ stream.write(" ... ")
+ stream.flush()
def _reportError(self, event):
self._report(event, "reportError", "E", "ERROR")
diff --git a/nose2/result.py b/nose2/result.py
index 48adc22a..fe19e8b1 100644
--- a/nose2/result.py
+++ b/nose2/result.py
@@ -31,6 +31,9 @@ def __init__(self, session):
self.shouldStop = False
# XXX TestCase.subTest expects a result.failfast attribute
self.failfast = False
+ # track whether or not the test actually started
+ # (in py3.12.1+ a skipped test is not started)
+ self.test_started = False
def startTest(self, test):
"""Start a test case.
@@ -40,6 +43,7 @@ def startTest(self, test):
"""
event = events.StartTestEvent(test, self, time.time())
self.session.hooks.startTest(event)
+ self.test_started = True
def stopTest(self, test):
"""Stop a test case.
diff --git a/nose2/tests/functional/test_junitxml_plugin.py b/nose2/tests/functional/test_junitxml_plugin.py
index acd175d8..1b289dd2 100644
--- a/nose2/tests/functional/test_junitxml_plugin.py
+++ b/nose2/tests/functional/test_junitxml_plugin.py
@@ -161,7 +161,7 @@ def test_skip_reason_in_message(self):
self.assertTestRunOutputMatches(
proc,
- stderr=r"test \(test_junitxml_skip_reason.Test"
+ stderr=r"test \(test_junitxml_skip_reason\.Test"
+ _method_name()
+ r"\) \.* skip",
)