Heh ... speaking of long messages - this time mine was shorter :)

On Tue, Nov 11, 2025 at 4:30 PM Amogh Desai <[email protected]> wrote:
>
> Just in case someone is wondering why I noticed it, I ran into this error:
>
> Testing started at 2:08 pm ... Launching pytest with arguments
> unit/core/test_configuration.py::TestDeprecatedConf::test_validators_can_be_overridden_in_subclass
> --no-header --no-summary -q in
> /Users/amoghdesai/Documents/OSS/repos/airflow/airflow-core/tests Traceback
> (most recent call last): File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py",
> line 860, in import_plugin __import__(importspec) ~~~~~~~~~~^^^^^^^^^^^^
> File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/assertion/rewrite.py",
> line 186, in exec_module exec(co, module.__dict__)
> ~~~~^^^^^^^^^^^^^^^^^^^^^ File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/devel-common/src/tests_common/pytest_plugin.py",
> line 39, in <module> from _pytest.config.findpaths import ConfigValue
> ImportError: cannot import name 'ConfigValue' from
> '_pytest.config.findpaths'
> (/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/findpaths.py)
> The above exception was the direct cause of the following exception:
> Traceback (most recent call last): File
> "/Applications/PyCharm.app/Contents/plugins/python-ce/helpers/pycharm/_jb_pytest_runner.py",
> line 75, in <module> sys.exit(pytest.main(args, plugins_to_load +
> [Plugin])) ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py",
> line 156, in main config = _prepareconfig(args, plugins) File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py",
> line 342, in _prepareconfig config =
> pluginmanager.hook.pytest_cmdline_parse( pluginmanager=pluginmanager,
> args=args ) File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/pluggy/_hooks.py",
> line 512, in __call__ return self._hookexec(self.name,
> self._hookimpls.copy(), kwargs, firstresult)
> ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/pluggy/_manager.py",
> line 120, in _hookexec return self._inner_hookexec(hook_name, methods,
> kwargs, firstresult)
> ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/pluggy/_callers.py",
> line 167, in _multicall raise exception File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/pluggy/_callers.py",
> line 139, in _multicall teardown.throw(exception) ~~~~~~~~~~~~~~^^^^^^^^^^^
> File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/helpconfig.py",
> line 112, in pytest_cmdline_parse config = yield ^^^^^ File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/pluggy/_callers.py",
> line 121, in _multicall res = hook_impl.function(*args) File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py",
> line 1146, in pytest_cmdline_parse self.parse(args) ~~~~~~~~~~^^^^^^ File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py",
> line 1527, in parse self._preparse(args, addopts=addopts)
> ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py",
> line 1431, in _preparse self.hook.pytest_load_initial_conftests(
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ early_config=self, args=args,
> parser=self._parser ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^
> File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/pluggy/_hooks.py",
> line 512, in __call__ return self._hookexec(self.name,
> self._hookimpls.copy(), kwargs, firstresult)
> ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/pluggy/_manager.py",
> line 120, in _hookexec return self._inner_hookexec(hook_name, methods,
> kwargs, firstresult)
> ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/pluggy/_callers.py",
> line 167, in _multicall raise exception File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/pluggy/_callers.py",
> line 139, in _multicall teardown.throw(exception) ~~~~~~~~~~~~~~^^^^^^^^^^^
> File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/warnings.py",
> line 129, in pytest_load_initial_conftests return (yield) ^^^^^ File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/pluggy/_callers.py",
> line 139, in _multicall teardown.throw(exception) ~~~~~~~~~~~~~~^^^^^^^^^^^
> File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/capture.py",
> line 173, in pytest_load_initial_conftests yield File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/pluggy/_callers.py",
> line 121, in _multicall res = hook_impl.function(*args) File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py",
> line 1228, in pytest_load_initial_conftests
> self.pluginmanager._set_initial_conftests(
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ args=args, ^^^^^^^^^^ ...<8
> lines>... ), ^^ ) ^ File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py",
> line 583, in _set_initial_conftests self._try_load_conftest(
> ~~~~~~~~~~~~~~~~~~~~~~~^ anchor, ^^^^^^^ ...<2 lines>...
> consider_namespace_packages=consider_namespace_packages,
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py",
> line 621, in _try_load_conftest self._loadconftestmodules(
> ~~~~~~~~~~~~~~~~~~~~~~~~~^ anchor, ^^^^^^^ ...<2 lines>...
> consider_namespace_packages=consider_namespace_packages,
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py",
> line 661, in _loadconftestmodules mod = self._importconftest( conftestpath,
> ...<2 lines>... consider_namespace_packages=consider_namespace_packages, )
> File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py",
> line 737, in _importconftest self.consider_conftest(mod,
> registration_name=conftestpath_plugin_name)
> ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py",
> line 818, in consider_conftest self.register(conftestmodule,
> name=registration_name)
> ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py",
> line 514, in register self.consider_module(plugin)
> ~~~~~~~~~~~~~~~~~~~~^^^^^^^^ File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py",
> line 826, in consider_module self._import_plugin_specs(getattr(mod,
> "pytest_plugins", []))
> ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py",
> line 833, in _import_plugin_specs self.import_plugin(import_spec)
> ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py",
> line 862, in import_plugin raise ImportError( f'Error importing plugin
> "{modname}": {e.args[0]}' ).with_traceback(e.__traceback__) from e File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py",
> line 860, in import_plugin __import__(importspec) ~~~~~~~~~~^^^^^^^^^^^^
> File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/assertion/rewrite.py",
> line 186, in exec_module exec(co, module.__dict__)
> ~~~~^^^^^^^^^^^^^^^^^^^^^ File
> "/Users/amoghdesai/Documents/OSS/repos/airflow/devel-common/src/tests_common/pytest_plugin.py",
> line 39, in <module> from _pytest.config.findpaths import ConfigValue
> ImportError: Error importing plugin "tests_common.pytest_plugin": cannot
> import name 'ConfigValue' from '_pytest.config.findpaths'
> (/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/findpaths.py)
> Process finished with exit code 1
> Which is not too explanatory on what went wrong, I was in the loop for the
> pytest bump, hence I noticed it and raised
> the concern.
>
>
> Thanks & Regards,
> Amogh Desai
>
>
> On Tue, Nov 11, 2025 at 5:07 PM Jarek Potiuk <[email protected]> wrote:
>
> > Hello here,
> >
> > As Amogh noticed people might still have an old version of Pytest (<9) in
> > their environments and the release of Pytest yesterday changed a bit the
> > way how one of our plugins was implemented.
> > We already have pytest>=9.0.0 in our dependencies added together with that
> > change, So next time you sync your environment it should get updated
> > automatically.
> >
> > So make sure to rebase your PRs to the latest main and sync.
> >
> > For virtualenvs of yours (remember you should use uv):
> >
> > uv sync
> >
> > For images:
> >
> > breeze ci-image build [--python X.Y]
> >
> > J.
> >

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to