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"]