When I run tests for pytest 8.1.0 with some additional pytest plugins installed and disabled, then more than 10 tests fails with errors like:
============================= test session starts ==============================
platform sunos5 -- Python 3.9.18, pytest-8.1.0, pluggy-1.4.0 -- $(BUILD_DIR)/.tox/py39/bin/python
cachedir: .tox/py39/.pytest_cache
hypothesis profile 'default' -> database=DirectoryBasedExampleDatabase(PosixPath('$(BUILD_DIR)/.hypothesis/examples'))
rootdir: $(BUILD_DIR)
configfile: pyproject.toml
testpaths: testing
plugins: hypothesis-6.98.15, xdist-3.5.0
collecting ... collected 3626 items
... snip ...
__________________ TestConfigFromdictargs.test_basic_behavior __________________
self = <test_config.TestConfigFromdictargs object at 0x7fffaba39610>
_sys_snapshot = None
def test_basic_behavior(self, _sys_snapshot) -> None:
option_dict = {"verbose": 444, "foo": "bar", "capture": "no"}
args = ["a", "b"]
> config = Config.fromdictargs(option_dict, args)
testing/test_config.py:991:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../prototype/i386/usr/lib/python3.9/vendor-packages/_pytest/config/__init__.py:1192: in fromdictargs
config.parse(args, addopts=False)
../prototype/i386/usr/lib/python3.9/vendor-packages/_pytest/config/__init__.py:1490: in parse
self._preparse(args, addopts=addopts)
../prototype/i386/usr/lib/python3.9/vendor-packages/_pytest/config/__init__.py:1377: in _preparse
self.pluginmanager.load_setuptools_entrypoints("pytest11")
/usr/lib/python3.9/vendor-packages/pluggy/_manager.py:415: in load_setuptools_entrypoints
self.register(plugin, name=ep.name)
../prototype/i386/usr/lib/python3.9/vendor-packages/_pytest/config/__init__.py:497: in register
plugin_name = super().register(plugin, name)
/usr/lib/python3.9/vendor-packages/pluggy/_manager.py:167: in register
self._verify_hook(hook, hookimpl)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <_pytest.config.PytestPluginManager object at 0x7fffa95f9580>
hook = <HookCaller 'pytest_collect_file'>
hookimpl = <HookImpl plugin_name='black', plugin=<module 'pytest_black' from '/usr/lib/python3.9/vendor-packages/pytest_black.py'>>
def _verify_hook(self, hook: HookCaller, hookimpl: HookImpl) -> None:
if hook.is_historic() and (hookimpl.hookwrapper or hookimpl.wrapper):
raise PluginValidationError(
hookimpl.plugin,
"Plugin %r\nhook %r\nhistoric incompatible with yield/wrapper/hookwrapper"
% (hookimpl.plugin_name, hook.name),
)
assert hook.spec is not None
if hook.spec.warn_on_impl:
_warn_for_function(hook.spec.warn_on_impl, hookimpl.function)
# positional arg checking
notinspec = set(hookimpl.argnames) - set(hook.spec.argnames)
if notinspec:
> raise PluginValidationError(
hookimpl.plugin,
"Plugin %r for hook %r\nhookimpl definition: %s\n"
"Argument(s) %s are declared in the hookimpl but "
"can not be found in the hookspec"
% (
hookimpl.plugin_name,
hook.name,
_formatdef(hookimpl.function),
notinspec,
),
)
E pluggy._manager.PluginValidationError: Plugin 'black' for hook 'pytest_collect_file'
E hookimpl definition: pytest_collect_file(file_path, path, parent)
E Argument(s) {'path'} are declared in the hookimpl but can not be found in the hookspec
/usr/lib/python3.9/vendor-packages/pluggy/_manager.py:342: PluginValidationError
In this case the pytest-black plugin is installed and disabled using PYTEST_ADDOPTS=-p 'no:black'.
This is regression since pytest 8.0.2.
The pytest testing is not run in virtual environment, but in real environment.
pytest 8.1.0
OpenIndiana (rolling release, up-to-date)
When I run tests for
pytest 8.1.0with some additional pytest plugins installed and disabled, then more than 10 tests fails with errors like:In this case the
pytest-blackplugin is installed and disabled usingPYTEST_ADDOPTS=-p 'no:black'.This is regression since
pytest 8.0.2.pip listfrom the virtual environment you are usingThe pytest testing is not run in virtual environment, but in real environment.
pytest 8.1.0
OpenIndiana (rolling release, up-to-date)