Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-nose2 for openSUSE:Factory 
checked in at 2024-02-09 23:55:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-nose2 (Old)
 and      /work/SRC/openSUSE:Factory/.python-nose2.new.1815 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-nose2"

Fri Feb  9 23:55:02 2024 rev:13 rq:1145529 version:0.14.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-nose2/python-nose2.changes        
2024-01-08 23:45:22.058541794 +0100
+++ /work/SRC/openSUSE:Factory/.python-nose2.new.1815/python-nose2.changes      
2024-02-09 23:55:31.093878904 +0100
@@ -1,0 +2,16 @@
+Fri Feb  9 21:43:46 UTC 2024 - Dirk Müller <dmuel...@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)
+
+-------------------------------------------------------------------

Old:
----
  nose2-0.14.0.tar.gz
  support-python312.patch

New:
----
  nose2-0.14.1.tar.gz

BETA DEBUG BEGIN:
  Old:    the fix is narrowly and adjustment to the test reporter.
- drop support-python312.patch (upstream)
BETA DEBUG END:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-nose2.spec ++++++
--- /var/tmp/diff_new_pack.9dojPb/_old  2024-02-09 23:55:31.669899660 +0100
+++ /var/tmp/diff_new_pack.9dojPb/_new  2024-02-09 23:55:31.669899660 +0100
@@ -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 @@
 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:  fdupes
 BuildRequires:  python-rpm-macros
 Requires(post): update-alternatives
-Requires(postun):update-alternatives
+Requires(postun): update-alternatives
 Suggests:       python-coverage
 BuildArch:      noarch
 %python_subpackages

++++++ nose2-0.14.0.tar.gz -> nose2-0.14.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nose2-0.14.0/PKG-INFO new/nose2-0.14.1/PKG-INFO
--- old/nose2-0.14.0/PKG-INFO   2023-10-05 01:07:41.807648200 +0200
+++ new/nose2-0.14.1/PKG-INFO   2024-01-29 00:44:05.930526700 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: nose2
-Version: 0.14.0
+Version: 0.14.1
 Summary: unittest with plugins
 Author-email: Stephen Rosen <d...@nose2.io>
 License: BSD-2-Clause
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nose2-0.14.0/docs/changelog.rst 
new/nose2-0.14.1/docs/changelog.rst
--- old/nose2-0.14.0/docs/changelog.rst 2023-10-05 01:05:19.000000000 +0200
+++ new/nose2-0.14.1/docs/changelog.rst 2024-01-29 00:43:24.000000000 +0100
@@ -13,6 +13,15 @@
 Unreleased
 ----------
 
+0.14.1 (2024-01-28)
+-------------------
+
+* 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)
 -------------------
 
@@ -250,7 +259,7 @@
 Fixed
 ~~~~~
 
-* Respect ``fail_under`` in converage config
+* Respect ``fail_under`` in coverage config
 * Avoid infinite recursion when loading setuptools from zipped egg
 * Manpage now renders reproducibly
 * MP doc build now reproducible
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nose2-0.14.0/docs/getting_started.rst 
new/nose2-0.14.1/docs/getting_started.rst
--- old/nose2-0.14.0/docs/getting_started.rst   2023-04-25 23:28:20.000000000 
+0200
+++ new/nose2-0.14.1/docs/getting_started.rst   2023-12-20 02:13:29.000000000 
+0100
@@ -36,4 +36,3 @@
 
 .. _pip : http://pypi.python.org/pypi/pip/1.0.2
 .. _pypi : http://pypi.python.org/pypi
-.. _six : http://pypi.python.org/pypi/six/1.1.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nose2-0.14.0/nose2/__init__.py 
new/nose2-0.14.1/nose2/__init__.py
--- old/nose2-0.14.0/nose2/__init__.py  2023-10-05 01:04:52.000000000 +0200
+++ new/nose2-0.14.1/nose2/__init__.py  2024-01-29 00:42:51.000000000 +0100
@@ -1,5 +1,5 @@
 from nose2.main import discover, main
 
-__version__ = "0.14.0"
+__version__ = "0.14.1"
 
 __all__ = ("__version__", "discover", "main")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nose2-0.14.0/nose2/main.py 
new/nose2-0.14.1/nose2/main.py
--- old/nose2-0.14.0/nose2/main.py      2023-04-29 20:18:18.000000000 +0200
+++ new/nose2-0.14.1/nose2/main.py      2024-01-29 00:37:17.000000000 +0100
@@ -145,8 +145,10 @@
             nargs="?",
             action="append",
             default=["unittest.cfg", "nose2.cfg"],
-            help="Config files to load, if they exist. ('unittest.cfg' "
-            "and 'nose2.cfg' in start directory default)",
+            help=(
+                "Config files to load, if they exist. ('unittest.cfg' "
+                "and 'nose2.cfg' in start directory default)"
+            ),
         )
         self.argparse.add_argument(
             "--no-user-config",
@@ -162,8 +164,10 @@
             dest="load_plugins",
             const=False,
             default=True,
-            help="Do not load any plugins. Warning: nose2 does not "
-            "do anything if no plugins are loaded",
+            help=(
+                "Do not load any plugins. Warning: nose2 does not "
+                "do anything if no plugins are loaded"
+            ),
         )
         self.argparse.add_argument(
             "--plugin",
@@ -182,7 +186,7 @@
         self.argparse.add_argument(
             "--verbosity",
             type=int,
-            help=("Set starting verbosity level (int). " "Applies before -v 
and -q"),
+            help=("Set starting verbosity level (int). Applies before -v and 
-q"),
         )
         self.argparse.add_argument(
             "--verbose",
@@ -200,7 +204,7 @@
             action="count",
             default=0,
             dest="quiet",
-            help=("Reduce verbosity. Multiple '-q's result in " "lower 
verbosity."),
+            help=("Reduce verbosity. Multiple '-q's result in lower 
verbosity."),
         )
         self.argparse.add_argument(
             "--log-level",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nose2-0.14.0/nose2/plugins/coverage.py 
new/nose2-0.14.1/nose2/plugins/coverage.py
--- old/nose2-0.14.0/nose2/plugins/coverage.py  2023-04-29 20:18:18.000000000 
+0200
+++ new/nose2-0.14.1/nose2/plugins/coverage.py  2024-01-29 00:37:17.000000000 
+0100
@@ -72,8 +72,10 @@
             metavar="TYPE",
             choices=["term", "term-missing", "annotate", "html", "xml"],
             dest="coverage_report",
-            help="Generate selected reports, available types:"
-            " term, term-missing, annotate, html, xml (multi-allowed)",
+            help=(
+                "Generate selected reports, available types:"
+                " term, term-missing, annotate, html, xml (multi-allowed)"
+            ),
         )
         group.add_argument(
             "--coverage-config",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nose2-0.14.0/nose2/plugins/layers.py 
new/nose2-0.14.1/nose2/plugins/layers.py
--- old/nose2-0.14.0/nose2/plugins/layers.py    2023-04-29 20:18:18.000000000 
+0200
+++ new/nose2-0.14.1/nose2/plugins/layers.py    2023-12-20 02:13:29.000000000 
+0100
@@ -255,10 +255,10 @@
 # for debugging
 # def printtree(suite, indent=''):
 #     import unittest
-#     six.print_('%s%s ->' % (indent, getattr(suite, 'layer', 'no layer')))
+#     print('%s%s ->' % (indent, getattr(suite, 'layer', 'no layer')))
 #     for test in suite:
 #         if isinstance(test, unittest.BaseTestSuite):
 #             printtree(test, indent + '  ')
 #         else:
-#             six.print_('%s %s' % (indent, test))
-#     six.print_('%s<- %s' % (indent, getattr(suite, 'layer', 'no layer')))
+#             print('%s %s' % (indent, test))
+#     print('%s<- %s' % (indent, getattr(suite, 'layer', 'no layer')))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nose2-0.14.0/nose2/plugins/loader/testcases.py 
new/nose2-0.14.1/nose2/plugins/loader/testcases.py
--- old/nose2-0.14.0/nose2/plugins/loader/testcases.py  2023-04-29 
20:18:18.000000000 +0200
+++ new/nose2-0.14.1/nose2/plugins/loader/testcases.py  2024-01-29 
00:37:17.000000000 +0100
@@ -95,8 +95,8 @@
             prefix = evt.testMethodPrefix or self.session.testMethodPrefix
             return (
                 attrname.startswith(prefix)
-                and hasattr(getattr(testCaseClass, attrname), "__call__")
                 and attrname not in excluded
+                and callable(getattr(testCaseClass, attrname))
             )
 
         evt = events.GetTestCaseNamesEvent(event.loader, testCaseClass, 
isTestMethod)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nose2-0.14.0/nose2/plugins/loader/testclasses.py 
new/nose2-0.14.1/nose2/plugins/loader/testclasses.py
--- old/nose2-0.14.0/nose2/plugins/loader/testclasses.py        2023-04-29 
20:18:18.000000000 +0200
+++ new/nose2-0.14.1/nose2/plugins/loader/testclasses.py        2024-01-29 
00:37:17.000000000 +0100
@@ -173,8 +173,8 @@
             prefix = self.session.testMethodPrefix
             return (
                 attrname.startswith(prefix)
-                and hasattr(getattr(cls, attrname), "__call__")
                 and attrname not in excluded
+                and callable(getattr(cls, attrname))
             )
 
         evt = GetTestMethodNamesEvent(event.loader, cls, isTestMethod)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nose2-0.14.0/nose2/plugins/result.py 
new/nose2-0.14.1/nose2/plugins/result.py
--- old/nose2-0.14.0/nose2/plugins/result.py    2023-04-29 20:18:18.000000000 
+0200
+++ new/nose2-0.14.1/nose2/plugins/result.py    2023-12-22 03:47:47.000000000 
+0100
@@ -80,6 +80,9 @@
           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 @@
         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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nose2-0.14.0/nose2/result.py 
new/nose2-0.14.1/nose2/result.py
--- old/nose2-0.14.0/nose2/result.py    2023-04-29 20:18:18.000000000 +0200
+++ new/nose2-0.14.1/nose2/result.py    2023-12-22 03:47:47.000000000 +0100
@@ -31,6 +31,9 @@
         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 @@
         """
         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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/nose2-0.14.0/nose2/tests/functional/support/scenario/class_fixtures/test_cf_testcase.py
 
new/nose2-0.14.1/nose2/tests/functional/support/scenario/class_fixtures/test_cf_testcase.py
--- 
old/nose2-0.14.0/nose2/tests/functional/support/scenario/class_fixtures/test_cf_testcase.py
 2023-04-25 23:28:20.000000000 +0200
+++ 
new/nose2-0.14.1/nose2/tests/functional/support/scenario/class_fixtures/test_cf_testcase.py
 2024-01-29 00:37:17.000000000 +0100
@@ -25,7 +25,7 @@
 
 
 class Test3(Test):
-    # this has class setup by virtue of inheritting from Test
+    # this has class setup by virtue of inheriting from Test
 
     def test_3(self):
         assert self.x
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/nose2-0.14.0/nose2/tests/functional/support/scenario/pretty_asserts/ignore_passing/test_prettyassert_ignore_passing.py
 
new/nose2-0.14.1/nose2/tests/functional/support/scenario/pretty_asserts/ignore_passing/test_prettyassert_ignore_passing.py
--- 
old/nose2-0.14.0/nose2/tests/functional/support/scenario/pretty_asserts/ignore_passing/test_prettyassert_ignore_passing.py
  2023-04-29 20:18:18.000000000 +0200
+++ 
new/nose2-0.14.1/nose2/tests/functional/support/scenario/pretty_asserts/ignore_passing/test_prettyassert_ignore_passing.py
  2024-01-29 00:37:17.000000000 +0100
@@ -1,3 +1,4 @@
+# flake8: noqa
 import unittest
 
 
@@ -6,7 +7,6 @@
         x = True
         y = False
         # fmt: off
-        # ruff: noqa
         assert x; assert y
         # fmt: on
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/nose2-0.14.0/nose2/tests/functional/test_junitxml_plugin.py 
new/nose2-0.14.1/nose2/tests/functional/test_junitxml_plugin.py
--- old/nose2-0.14.0/nose2/tests/functional/test_junitxml_plugin.py     
2023-04-29 20:18:18.000000000 +0200
+++ new/nose2-0.14.1/nose2/tests/functional/test_junitxml_plugin.py     
2023-12-22 03:47:47.000000000 +0100
@@ -161,7 +161,7 @@
 
         self.assertTestRunOutputMatches(
             proc,
-            stderr=r"test \(test_junitxml_skip_reason.Test"
+            stderr=r"test \(test_junitxml_skip_reason\.Test"
             + _method_name()
             + r"\) \.* skip",
         )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/nose2-0.14.0/nose2/tests/functional/test_layers_plugin.py 
new/nose2-0.14.1/nose2/tests/functional/test_layers_plugin.py
--- old/nose2-0.14.0/nose2/tests/functional/test_layers_plugin.py       
2023-04-25 23:28:20.000000000 +0200
+++ new/nose2-0.14.1/nose2/tests/functional/test_layers_plugin.py       
2024-01-29 00:37:17.000000000 +0100
@@ -90,13 +90,17 @@
             r"ERROR: fixture with a value test_err 
\(test_layers_with_errors.Test"
             + _method_name("test_err")
             + r"\)",
-            "ERROR: A test scenario with errors should check for an attribute "
-            "that does not exist and raise an error",
+            (
+                "ERROR: A test scenario with errors should check for an 
attribute "
+                "that does not exist and raise an error"
+            ),
             r"FAIL: fixture with a value test_fail 
\(test_layers_with_errors.Test"
             + _method_name("test_fail")
             + r"\)",
-            "FAIL: A test scenario with errors should check that value == 2 "
-            "and fail",
+            (
+                "FAIL: A test scenario with errors should check that value == 
2 "
+                "and fail"
+            ),
         ]
         for line in expect:
             self.assertTestRunOutputMatches(proc, stderr=line)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/nose2-0.14.0/nose2/tests/functional/test_loadtests_plugin.py 
new/nose2-0.14.1/nose2/tests/functional/test_loadtests_plugin.py
--- old/nose2-0.14.0/nose2/tests/functional/test_loadtests_plugin.py    
2023-04-29 20:18:18.000000000 +0200
+++ new/nose2-0.14.1/nose2/tests/functional/test_loadtests_plugin.py    
2024-01-29 00:37:17.000000000 +0100
@@ -19,7 +19,7 @@
         proc = self.runIn(
             "scenario/load_tests_pkg",
             "-v",
-            "-c=" 
"nose2/tests/functional/support/scenario/load_tests_pkg/unittest.cfg",
+            
"-c=nose2/tests/functional/support/scenario/load_tests_pkg/unittest.cfg",
             "--plugin=nose2.plugins.loader.loadtests",
         )
         self.assertTestRunOutputMatches(proc, stderr="Ran 2 tests")
@@ -34,7 +34,7 @@
         proc = self.runIn(
             "scenario/load_tests_pkg/ltpkg/tests",
             "-v",
-            "-c=" 
"nose2/tests/functional/support/scenario/load_tests_pkg/unittest.cfg",
+            
"-c=nose2/tests/functional/support/scenario/load_tests_pkg/unittest.cfg",
             "--plugin=nose2.plugins.loader.loadtests",
         )
         self.assertTestRunOutputMatches(proc, stderr="Ran 1 test")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nose2-0.14.0/nose2/tests/functional/test_such_dsl.py 
new/nose2-0.14.1/nose2/tests/functional/test_such_dsl.py
--- old/nose2-0.14.0/nose2/tests/functional/test_such_dsl.py    2023-04-25 
23:28:20.000000000 +0200
+++ new/nose2-0.14.1/nose2/tests/functional/test_such_dsl.py    2024-01-29 
00:37:17.000000000 +0100
@@ -23,7 +23,7 @@
             "such",
             "-v",
             "--plugin=nose2.plugins.layers",
-            "test_such.having an expensive fixture." "should do more things",
+            "test_such.having an expensive fixture.should do more things",
         )
         self.assertTestRunOutputMatches(proc, stderr="Ran 1 test")
         self.assertEqual(proc.poll(), 0, proc.stderr.getvalue())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nose2-0.14.0/nose2/tests/unit/test_junitxml.py 
new/nose2-0.14.1/nose2/tests/unit/test_junitxml.py
--- old/nose2-0.14.0/nose2/tests/unit/test_junitxml.py  2023-04-29 
20:18:18.000000000 +0200
+++ new/nose2-0.14.1/nose2/tests/unit/test_junitxml.py  2024-01-29 
00:37:17.000000000 +0100
@@ -23,7 +23,7 @@
 class TestJunitXmlPlugin(TestCase):
     _RUN_IN_TEMP = True
 
-    BAD_FOR_XML_U = "A\x07 B\x0B C\x10 D\uD900 " "E\uFFFE F\x80 G\x90 H\uFDDD"
+    BAD_FOR_XML_U = "A\x07 B\x0B C\x10 D\uD900 E\uFFFE F\x80 G\x90 H\uFDDD"
     # UTF-8 string with double null (invalid)
     BAD_FOR_XML_B = (
         b"A\x07 B\x0b C\x10 D\xed\xa4\x80 "
@@ -51,10 +51,10 @@
     if sys.maxunicode <= 0xFFFF:
         EXPECTED_RE = "^[\x09\x0A\x0D\x20\x21-\uD7FF\uE000-\uFFFD]*$"
         EXPECTED_RE_SAFE = (
-            "^[\x09\x0A\x0D\x20\x21-\x7E\x85" 
"\xA0-\uD7FF\uE000-\uFDCF\uFDF0-\uFFFD]*$"
+            
"^[\x09\x0A\x0D\x20\x21-\x7E\x85\xA0-\uD7FF\uE000-\uFDCF\uFDF0-\uFFFD]*$"
         )
     else:
-        EXPECTED_RE = "^[\x09\x0A\x0D\x20\x21-\uD7FF\uE000-\uFFFD" 
"\u10000-\u10FFFF]*$"
+        EXPECTED_RE = 
"^[\x09\x0A\x0D\x20\x21-\uD7FF\uE000-\uFFFD\u10000-\u10FFFF]*$"
         EXPECTED_RE_SAFE = (
             "^[\x09\x0A\x0D\x20\x21-\x7E\x85"
             "\xA0-\uD7FF\uE000-\uFDCF\uFDF0-\uFFFD"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/nose2-0.14.0/nose2/tests/unit/test_printhooks_plugin.py 
new/nose2-0.14.1/nose2/tests/unit/test_printhooks_plugin.py
--- old/nose2-0.14.0/nose2/tests/unit/test_printhooks_plugin.py 2023-04-29 
20:18:18.000000000 +0200
+++ new/nose2-0.14.1/nose2/tests/unit/test_printhooks_plugin.py 2024-01-29 
00:37:17.000000000 +0100
@@ -74,7 +74,7 @@
         result = self.session.hooks.pluginHookA(event)
         self.assertEqual(result, "TestPluginB.pluginHookA")
         self.assertEqual(
-            "\n" "pluginHookA: " "CustomEvent(handled=False, args='args')",
+            "\npluginHookA: CustomEvent(handled=False, args='args')",
             self.buf.getvalue(),
         )
 
@@ -87,7 +87,7 @@
         result = self.session.hooks.pluginHookA(event)
         self.assertEqual(result, "TestPluginB.pluginHookA")
         self.assertEqual(
-            "\n" "pluginHookA: " "CustomEvent(handled=False, args='args')",
+            "\npluginHookA: CustomEvent(handled=False, args='args')",
             self.buf.getvalue(),
         )
 
@@ -99,7 +99,7 @@
         result = self.session.hooks.pluginHookA(event)
         self.assertEqual(result, None)
         self.assertEqual(
-            "\n" "pluginHookA: " "CustomEvent(handled=False, args='args')",
+            "\npluginHookA: CustomEvent(handled=False, args='args')",
             self.buf.getvalue(),
         )
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nose2-0.14.0/nose2/util.py 
new/nose2-0.14.1/nose2/util.py
--- old/nose2-0.14.0/nose2/util.py      2023-04-29 20:18:18.000000000 +0200
+++ new/nose2-0.14.1/nose2/util.py      2024-01-29 00:37:17.000000000 +0100
@@ -244,7 +244,7 @@
 def safe_decode(string):
     """Safely decode a byte string into unicode"""
     if string is None:
-        return string
+        return None
     try:
         return string.decode()
     except AttributeError:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nose2-0.14.0/nose2.egg-info/PKG-INFO 
new/nose2-0.14.1/nose2.egg-info/PKG-INFO
--- old/nose2-0.14.0/nose2.egg-info/PKG-INFO    2023-10-05 01:07:41.000000000 
+0200
+++ new/nose2-0.14.1/nose2.egg-info/PKG-INFO    2024-01-29 00:44:05.000000000 
+0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: nose2
-Version: 0.14.0
+Version: 0.14.1
 Summary: unittest with plugins
 Author-email: Stephen Rosen <d...@nose2.io>
 License: BSD-2-Clause
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nose2-0.14.0/pyproject.toml 
new/nose2-0.14.1/pyproject.toml
--- old/nose2-0.14.0/pyproject.toml     2023-10-05 01:04:02.000000000 +0200
+++ new/nose2-0.14.1/pyproject.toml     2024-01-29 00:37:17.000000000 +0100
@@ -59,84 +59,6 @@
 [tool.setuptools.dynamic]
 version = {attr = "nose2.__version__"}
 
-[tool.ruff]
-select = [
-  "B",       # flake8-bugbear
-  "C4",      # flake8-comprehensions
-  "C90",     # McCabe cyclomatic complexity
-  "E",       # pycodestyle
-  "EXE",     # flake8-executable
-  "F",       # Pyflakes
-  "I",       # isort
-  "ICN",     # flake8-import-conventions
-  "INT",     # flake8-gettext
-  "PLE",     # Pylint errors
-  "PLR091",  # Pylint Refactor just for max-args, max-branches, etc.
-  "PYI",     # flake8-pyi
-  "RSE",     # flake8-raise
-  "RUF",     # Ruff-specific rules
-  "TCH",     # flake8-type-checking
-  "TID",     # flake8-tidy-imports
-  "UP",      # pyupgrade
-  "W",       # pycodestyle
-  "YTT",     # flake8-2020
-  # "A",     # flake8-builtins
-  # "ANN",   # flake8-annotations
-  # "ARG",   # flake8-unused-arguments
-  # "BLE",   # flake8-blind-except
-  # "COM",   # flake8-commas
-  # "D",     # pydocstyle
-  # "DJ",    # flake8-django
-  # "DTZ",   # flake8-datetimez
-  # "EM",    # flake8-errmsg
-  # "ERA",   # eradicate
-  # "FBT",   # flake8-boolean-trap
-  # "G",     # flake8-logging-format
-  # "INP",   # flake8-no-pep420
-  # "ISC",   # flake8-implicit-str-concat
-  # "N",     # pep8-naming
-  # "NPY",   # NumPy-specific rules
-  # "PD",    # pandas-vet
-  # "PGH",   # pygrep-hooks
-  # "PIE",   # flake8-pie
-  # "PT",    # flake8-pytest-style
-  # "PTH",   # flake8-use-pathlib
-  # "Q",     # flake8-quotes
-  # "RET",   # flake8-return
-  # "S",     # flake8-bandit
-  # "SIM",   # flake8-simplify
-  # "SLF",   # flake8-self
-  # "T10",   # flake8-debugger
-  # "T20",   # flake8-print
-  # "TRY",   # tryceratops
-]
-ignore = [
-  "B904",
-  "RUF005",
-  "RUF012",
-  "RUF100"
-]
-target-version = "py37"
-
-[tool.ruff.isort]
-known-third-party = [
-  "coverage",
-  "mock",
-  "six",
-]
-
-[tool.ruff.mccabe]
-max-complexity = 15
-
-[tool.ruff.pylint]
-max-args = 9
-max-branches = 15
-max-statements = 66
-
-[tool.ruff.per-file-ignores]
-"nose2/tests/*" = ["B011"]
-# FIXME: resolving these could change behavior -- do it in a separate
-#        cleanup and note it in the changelog
-"nose2/plugins/loader/*.py" = ["B004"]
-"nose2/plugins/mp.py" = ["UP031"]
-"nose2/tests/functional/support/such/test_regression_same_havings.py" = 
["EXE001"]
+[tool.isort]
+profile = "black"
+known_third_party = ["coverage", "mock"]

Reply via email to