Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-pytest-relaxed for openSUSE:Factory checked in at 2023-06-03 00:06:36 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-pytest-relaxed (Old) and /work/SRC/openSUSE:Factory/.python-pytest-relaxed.new.15902 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pytest-relaxed" Sat Jun 3 00:06:36 2023 rev:13 rq:1090085 version:2.0.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-pytest-relaxed/python-pytest-relaxed.changes 2023-04-25 16:53:29.366195326 +0200 +++ /work/SRC/openSUSE:Factory/.python-pytest-relaxed.new.15902/python-pytest-relaxed.changes 2023-06-03 00:06:43.269810895 +0200 @@ -1,0 +2,10 @@ +Wed May 31 19:43:48 UTC 2023 - Dirk Müller <dmuel...@suse.com> + +- update to 2.0.1: + * Don't try loading Pytest fixture functions as if + they were test functions. Classifying this as a bug even + though it's a moderately sized change in behavior; + it's vanishingly unlikely anybody was relying on this + somehow! + +------------------------------------------------------------------- Old: ---- pytest-relaxed-2.0.0.tar.gz New: ---- pytest-relaxed-2.0.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-pytest-relaxed.spec ++++++ --- /var/tmp/diff_new_pack.r4ZX5x/_old 2023-06-03 00:06:44.365817367 +0200 +++ /var/tmp/diff_new_pack.r4ZX5x/_new 2023-06-03 00:06:44.369817390 +0200 @@ -18,7 +18,7 @@ %{?sle15_python_module_pythons} Name: python-pytest-relaxed -Version: 2.0.0 +Version: 2.0.1 Release: 0 Summary: Relaxed test discovery/organization for pytest License: BSD-2-Clause ++++++ pytest-relaxed-2.0.0.tar.gz -> pytest-relaxed-2.0.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-relaxed-2.0.0/PKG-INFO new/pytest-relaxed-2.0.1/PKG-INFO --- old/pytest-relaxed-2.0.0/PKG-INFO 2022-12-31 23:16:47.000000000 +0100 +++ new/pytest-relaxed-2.0.1/PKG-INFO 2023-05-23 05:21:56.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: pytest-relaxed -Version: 2.0.0 +Version: 2.0.1 Summary: Relaxed test discovery/organization for pytest Home-page: https://pytest-relaxed.readthedocs.io/ Author: Jeff Forcier @@ -17,6 +17,7 @@ Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-relaxed-2.0.0/dev-requirements.txt new/pytest-relaxed-2.0.1/dev-requirements.txt --- old/pytest-relaxed-2.0.0/dev-requirements.txt 2022-12-31 23:15:23.000000000 +0100 +++ new/pytest-relaxed-2.0.1/dev-requirements.txt 2023-05-23 05:19:08.000000000 +0200 @@ -10,11 +10,9 @@ setuptools>=56.0.0 # Test coverage (see note in tasks.py::coverage) coverage==6.2 -# CI only, but why not -codecov==2.1.12 # Task running invoke>=2 -invocations>=3 +invocations>=3.3 # Docs (also transitively via invocations; consider nuking again) releases>=2 Binary files old/pytest-relaxed-2.0.0/docs/.changelog.rst.swp and new/pytest-relaxed-2.0.1/docs/.changelog.rst.swp differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-relaxed-2.0.0/docs/changelog.rst new/pytest-relaxed-2.0.1/docs/changelog.rst --- old/pytest-relaxed-2.0.0/docs/changelog.rst 2022-12-31 23:16:07.000000000 +0100 +++ new/pytest-relaxed-2.0.1/docs/changelog.rst 2023-05-23 05:21:53.000000000 +0200 @@ -2,6 +2,11 @@ Changelog ========= +- :release:`2.0.1 <2023-05-22>` +- :bug:`9` Don't try loading Pytest fixture functions as if they were test + functions. Classifying this as a bug even though it's a moderately sized + change in behavior; it's vanishingly unlikely anybody was relying on this + somehow! Thanks to ``@cajopa`` for the report. - :release:`2.0.0 <2022-12-31>` - :bug:`- major` Prior to version 2, we failed to correctly support true Pytest setup/teardown methods (i.e. ``setup_method`` and ``teardown_method``) and diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-relaxed-2.0.0/pytest_relaxed/_version.py new/pytest-relaxed-2.0.1/pytest_relaxed/_version.py --- old/pytest-relaxed-2.0.0/pytest_relaxed/_version.py 2022-12-17 00:19:57.000000000 +0100 +++ new/pytest-relaxed-2.0.1/pytest_relaxed/_version.py 2023-05-23 05:21:55.000000000 +0200 @@ -1,2 +1,2 @@ -__version_info__ = (2, 0, 0) +__version_info__ = (2, 0, 1) __version__ = ".".join(map(str, __version_info__)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-relaxed-2.0.0/pytest_relaxed/classes.py new/pytest-relaxed-2.0.1/pytest_relaxed/classes.py --- old/pytest-relaxed-2.0.0/pytest_relaxed/classes.py 2022-12-18 07:12:03.000000000 +0100 +++ new/pytest-relaxed-2.0.1/pytest_relaxed/classes.py 2023-05-23 05:19:08.000000000 +0200 @@ -18,11 +18,18 @@ return not name.startswith("_") -def istestfunction(name): - return not ( - name.startswith("_") - or name in ("setup", "setup_method", "teardown", "teardown_method") +# NOTE: this is defined at top level due to a couple spots of reuse outside of +# the mixin class itself. +def istestfunction(obj, name): + is_hidden_name = name.startswith("_") or name in ( + "setup", + "setup_method", + "teardown", + "teardown_method", ) + # TODO: is this reliable? how about __pytest_wrapped__? + is_fixture = hasattr(obj, "_pytestfixturefunction") + return not (is_hidden_name or is_fixture) # All other classes in here currently inherit from PyCollector, and it is what @@ -45,7 +52,7 @@ return istestclass(name) def istestfunction(self, obj, name): - return istestfunction(name) + return istestfunction(obj, name) class SpecModule(RelaxedMixin, Module): @@ -120,7 +127,7 @@ if isinstance(value, (types.MethodType, types.FunctionType)): # If they look like tests, they get skipped; don't want to copy # tests around! - if istestfunction(name): + if istestfunction(obj, name): continue # Non-test == they're probably lifecycle methods # (setup/teardown) or helpers (_do_thing). Rebind them to the diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-relaxed-2.0.0/pytest_relaxed.egg-info/PKG-INFO new/pytest-relaxed-2.0.1/pytest_relaxed.egg-info/PKG-INFO --- old/pytest-relaxed-2.0.0/pytest_relaxed.egg-info/PKG-INFO 2022-12-31 23:16:47.000000000 +0100 +++ new/pytest-relaxed-2.0.1/pytest_relaxed.egg-info/PKG-INFO 2023-05-23 05:21:56.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: pytest-relaxed -Version: 2.0.0 +Version: 2.0.1 Summary: Relaxed test discovery/organization for pytest Home-page: https://pytest-relaxed.readthedocs.io/ Author: Jeff Forcier @@ -17,6 +17,7 @@ Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-relaxed-2.0.0/pytest_relaxed.egg-info/SOURCES.txt new/pytest-relaxed-2.0.1/pytest_relaxed.egg-info/SOURCES.txt --- old/pytest-relaxed-2.0.0/pytest_relaxed.egg-info/SOURCES.txt 2022-12-31 23:16:47.000000000 +0100 +++ new/pytest-relaxed-2.0.1/pytest_relaxed.egg-info/SOURCES.txt 2023-05-23 05:21:56.000000000 +0200 @@ -4,7 +4,6 @@ dev-requirements.txt setup.py tasks.py -docs/.changelog.rst.swp docs/changelog.rst docs/conf.py docs/index.rst diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-relaxed-2.0.0/setup.py new/pytest-relaxed-2.0.1/setup.py --- old/pytest-relaxed-2.0.0/setup.py 2022-12-17 05:46:25.000000000 +0100 +++ new/pytest-relaxed-2.0.1/setup.py 2023-02-16 21:05:36.000000000 +0100 @@ -47,6 +47,7 @@ "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-relaxed-2.0.0/tasks.py new/pytest-relaxed-2.0.1/tasks.py --- old/pytest-relaxed-2.0.0/tasks.py 2022-12-19 04:31:02.000000000 +0100 +++ new/pytest-relaxed-2.0.1/tasks.py 2023-05-23 05:19:08.000000000 +0200 @@ -1,5 +1,5 @@ from invoke import task, Collection -from invocations.checks import blacken +from invocations import checks from invocations.packaging import release from invocations import docs, pytest as pytests @@ -64,5 +64,5 @@ ) -ns = Collection(blacken, coverage, docs, test, release) +ns = Collection(checks, coverage, docs, test, release) ns.configure({"blacken": {"find_opts": "-and -not -path './build*'"}}) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-relaxed-2.0.0/tests/test_collection.py new/pytest-relaxed-2.0.1/tests/test_collection.py --- old/pytest-relaxed-2.0.0/tests/test_collection.py 2022-12-18 06:17:47.000000000 +0100 +++ new/pytest-relaxed-2.0.1/tests/test_collection.py 2023-05-23 05:19:08.000000000 +0200 @@ -7,7 +7,7 @@ pytest_plugins = "pytester" -class Test_pytest_collect_file(object): +class Test_pytest_collect_file: def test_only_loads_dot_py_files(self, testdir): testdir.makepyfile( somefile=""" @@ -179,6 +179,24 @@ assert "actual test here" in stdout assert "actual nested test here" in stdout + def test_skips_pytest_fixtures(self, testdir): + testdir.makepyfile( + foo=""" + from pytest import fixture + + @fixture + def pls_noload(): + yield + + def actual_test_here(): + pass + """ + ) + stdout = testdir.runpytest("-v").stdout.str() + assert "actual test here" in stdout + # will be in stdout as a failure and warning if bug present + assert "pls_noload" not in stdout + def test_setup_given_inner_class_instances_when_inherited(self, testdir): # NOTE: without this functionality in place, we still see setup() # called on a per-test-method basis, but where 'self' is the outer @@ -237,7 +255,7 @@ class Helper: pass - class NewHelper(object): + class NewHelper: pass """ ) @@ -263,7 +281,7 @@ # explicitly reject imported classes (i.e. if we only reject funcs). testdir.makepyfile( _util=""" - class Callable(object): + class Callable: def __call__(self): pass diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-relaxed-2.0.0/tests/test_raises.py new/pytest-relaxed-2.0.1/tests/test_raises.py --- old/pytest-relaxed-2.0.0/tests/test_raises.py 2022-12-17 03:39:28.000000000 +0100 +++ new/pytest-relaxed-2.0.1/tests/test_raises.py 2023-02-16 21:05:36.000000000 +0100 @@ -11,7 +11,7 @@ pass -class Test_raises(object): +class Test_raises: def test_when_given_exception_raised_no_problem(self): @raises(Boom) def kaboom():