Your message dated Sun, 28 Jun 2026 23:21:39 +0100
with message-id <[email protected]>
and subject line Re: Bug#1141005: pydantic-core: FTBFS: E
pytest.PytestRemovedIn10Warning: Class-scoped fixture defined as instance
method is deprecated.
has caused the Debian Bug report #1141005,
regarding pydantic-core: FTBFS: E
pytest.PytestRemovedIn10Warning: Class-scoped fixture defined as instance
method is deprecated.
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
1141005: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1141005
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: src:pydantic-core
Version: 2.46.4-1
Severity: serious
Tags: ftbfs forky sid
Dear maintainer:
During a rebuild of all packages in unstable, this package failed to build.
Below you will find the last part of the build log (probably the most
relevant part, but not necessarily). If required, the full build log
is available here:
https://people.debian.org/~sanvila/build-logs/202606/
About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.
If you cannot reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.
If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:pydantic-core, so that this is still
visible in the BTS web page for this package.
Thanks.
--------------------------------------------------------------------------------
[...]
debian/rules clean
dh clean --buildsystem=pybuild
debian/rules override_dh_auto_clean
make[1]: Entering directory '/<<PKGBUILDDIR>>'
test ! -f pydantic-core/Cargo.lock.saved || \
mv pydantic-core/Cargo.lock.saved pydantic-core/Cargo.lock
dh_auto_clean --sourcedir=pydantic-core
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
dh_autoreconf_clean -O--buildsystem=pybuild
dh_clean -O--buildsystem=pybuild
debian/rules binary
dh binary --buildsystem=pybuild
dh_update_autotools_config -O--buildsystem=pybuild
dh_autoreconf -O--buildsystem=pybuild
debian/rules override_dh_auto_configure
[... snipped ...]
@classmethod
def from_call(
cls,
func: Callable[[], TResult],
when: Literal["collect", "setup", "call", "teardown"],
reraise: type[BaseException] | tuple[type[BaseException], ...] | None =
None,
) -> CallInfo[TResult]:
"""Call func, wrapping the result in a CallInfo.
:param func:
The function to call. Called without arguments.
:type func: Callable[[], _pytest.runner.TResult]
:param when:
The phase in which the function is called.
:param reraise:
Exception or exceptions that shall propagate if raised by the
function, instead of being wrapped in the CallInfo.
"""
excinfo = None
instant = timing.Instant()
try:
> result: TResult | None = func()
^^^^^^
/usr/lib/python3/dist-packages/_pytest/runner.py:361:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3/dist-packages/_pytest/runner.py:250: in <lambda>
lambda: runtest_hook(item=item, **kwds),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__
return self._hookexec(self.name, self._hookimpls.copy(), kwargs,
firstresult)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/_pytest/logging.py:858: in pytest_runtest_setup
yield
/usr/lib/python3/dist-packages/_pytest/capture.py:895: in pytest_runtest_setup
return (yield)
^^^^^
/usr/lib/python3/dist-packages/_pytest/runner.py:170: in pytest_runtest_setup
item.session._setupstate.setup(item)
/usr/lib/python3/dist-packages/_pytest/runner.py:536: in setup
col.setup()
/usr/lib/python3/dist-packages/_pytest/python.py:1710: in setup
self._request._fillfixtures()
/usr/lib/python3/dist-packages/_pytest/fixtures.py:806: in _fillfixtures
item.funcargs[argname] = self.getfixturevalue(argname)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/_pytest/fixtures.py:630: in getfixturevalue
fixturedef = self._get_active_fixturedef(argname)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/_pytest/fixtures.py:726: in
_get_active_fixturedef
fixturedef.execute(request=subrequest)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <FixtureDef argname='schema_validator' scope='class'
baseid='tests/validators/test_union.py::TestModelClassSimilar'>
request = <SubRequest 'schema_validator' for <Function test_model_b_preferred>>
def execute(self, request: SubRequest) -> FixtureValue:
"""Return the value of this fixture, executing it if not cached."""
# Ensure that the dependent fixtures requested by this fixture are
loaded.
# This needs to be done before checking if we have a cached value, since
# if a dependent fixture has their cache invalidated, e.g. due to
# parametrization, they finalize themselves and fixtures depending on it
# (which will likely include this fixture) setting `self.cached_result
= None`.
# See #4871
requested_fixtures_that_should_finalize_us = []
for argname in self.argnames:
fixturedef = request._get_active_fixturedef(argname)
# Saves requested fixtures in a list so we later can add our
finalizer
# to them, ensuring that if a requested fixture gets torn down we
get torn
# down first. This is generally handled by SetupState, but still
currently
# needed when this fixture is not parametrized but depends on a
parametrized
# fixture.
requested_fixtures_that_should_finalize_us.append(fixturedef)
# Check for (and return) cached value/exception.
if self.cached_result is not None:
request_cache_key = self.cache_key(request)
cache_key = self.cached_result[1]
try:
# Attempt to make a normal == check: this might fail for objects
# which do not implement the standard comparison (like numpy
arrays -- #6497).
cache_hit = bool(request_cache_key == cache_key)
except (ValueError, RuntimeError):
# If the comparison raises, use 'is' as fallback.
cache_hit = request_cache_key is cache_key
if cache_hit:
if self.cached_result[2] is not None:
exc, exc_tb = self.cached_result[2]
raise exc.with_traceback(exc_tb)
else:
return self.cached_result[0]
# We have a previous but differently parametrized fixture instance
# so we need to tear it down before creating a new one.
self.finish(request)
assert self.cached_result is None
# Add finalizer to requested fixtures we saved previously.
# We make sure to do this after checking for cached value to avoid
# adding our finalizer multiple times. (#12135)
finalizer = functools.partial(self.finish, request=request)
for parent_fixture in requested_fixtures_that_should_finalize_us:
parent_fixture.addfinalizer(finalizer)
# Register the pytest_fixture_post_finalizer as the first finalizer,
# which is executed last.
> assert not self._finalizers
^^^^^^^^^^^^^^^^^^^^
E AssertionError
/usr/lib/python3/dist-packages/_pytest/fixtures.py:1221: AssertionError
_______ ERROR at setup of TestModelClassSimilar.test_model_b_not_ignored _______
cls = <class '_pytest.runner.CallInfo'>
func = <function call_and_report.<locals>.<lambda> at 0x7fa61d60ca90>
when = 'setup'
reraise = (<class '_pytest.outcomes.Exit'>, <class 'KeyboardInterrupt'>)
@classmethod
def from_call(
cls,
func: Callable[[], TResult],
when: Literal["collect", "setup", "call", "teardown"],
reraise: type[BaseException] | tuple[type[BaseException], ...] | None =
None,
) -> CallInfo[TResult]:
"""Call func, wrapping the result in a CallInfo.
:param func:
The function to call. Called without arguments.
:type func: Callable[[], _pytest.runner.TResult]
:param when:
The phase in which the function is called.
:param reraise:
Exception or exceptions that shall propagate if raised by the
function, instead of being wrapped in the CallInfo.
"""
excinfo = None
instant = timing.Instant()
try:
> result: TResult | None = func()
^^^^^^
/usr/lib/python3/dist-packages/_pytest/runner.py:361:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3/dist-packages/_pytest/runner.py:250: in <lambda>
lambda: runtest_hook(item=item, **kwds),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__
return self._hookexec(self.name, self._hookimpls.copy(), kwargs,
firstresult)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/_pytest/logging.py:858: in pytest_runtest_setup
yield
/usr/lib/python3/dist-packages/_pytest/capture.py:895: in pytest_runtest_setup
return (yield)
^^^^^
/usr/lib/python3/dist-packages/_pytest/runner.py:170: in pytest_runtest_setup
item.session._setupstate.setup(item)
/usr/lib/python3/dist-packages/_pytest/runner.py:536: in setup
col.setup()
/usr/lib/python3/dist-packages/_pytest/python.py:1710: in setup
self._request._fillfixtures()
/usr/lib/python3/dist-packages/_pytest/fixtures.py:806: in _fillfixtures
item.funcargs[argname] = self.getfixturevalue(argname)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/_pytest/fixtures.py:630: in getfixturevalue
fixturedef = self._get_active_fixturedef(argname)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/_pytest/fixtures.py:726: in
_get_active_fixturedef
fixturedef.execute(request=subrequest)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <FixtureDef argname='schema_validator' scope='class'
baseid='tests/validators/test_union.py::TestModelClassSimilar'>
request = <SubRequest 'schema_validator' for <Function
test_model_b_not_ignored>>
def execute(self, request: SubRequest) -> FixtureValue:
"""Return the value of this fixture, executing it if not cached."""
# Ensure that the dependent fixtures requested by this fixture are
loaded.
# This needs to be done before checking if we have a cached value, since
# if a dependent fixture has their cache invalidated, e.g. due to
# parametrization, they finalize themselves and fixtures depending on it
# (which will likely include this fixture) setting `self.cached_result
= None`.
# See #4871
requested_fixtures_that_should_finalize_us = []
for argname in self.argnames:
fixturedef = request._get_active_fixturedef(argname)
# Saves requested fixtures in a list so we later can add our
finalizer
# to them, ensuring that if a requested fixture gets torn down we
get torn
# down first. This is generally handled by SetupState, but still
currently
# needed when this fixture is not parametrized but depends on a
parametrized
# fixture.
requested_fixtures_that_should_finalize_us.append(fixturedef)
# Check for (and return) cached value/exception.
if self.cached_result is not None:
request_cache_key = self.cache_key(request)
cache_key = self.cached_result[1]
try:
# Attempt to make a normal == check: this might fail for objects
# which do not implement the standard comparison (like numpy
arrays -- #6497).
cache_hit = bool(request_cache_key == cache_key)
except (ValueError, RuntimeError):
# If the comparison raises, use 'is' as fallback.
cache_hit = request_cache_key is cache_key
if cache_hit:
if self.cached_result[2] is not None:
exc, exc_tb = self.cached_result[2]
raise exc.with_traceback(exc_tb)
else:
return self.cached_result[0]
# We have a previous but differently parametrized fixture instance
# so we need to tear it down before creating a new one.
self.finish(request)
assert self.cached_result is None
# Add finalizer to requested fixtures we saved previously.
# We make sure to do this after checking for cached value to avoid
# adding our finalizer multiple times. (#12135)
finalizer = functools.partial(self.finish, request=request)
for parent_fixture in requested_fixtures_that_should_finalize_us:
parent_fixture.addfinalizer(finalizer)
# Register the pytest_fixture_post_finalizer as the first finalizer,
# which is executed last.
> assert not self._finalizers
^^^^^^^^^^^^^^^^^^^^
E AssertionError
/usr/lib/python3/dist-packages/_pytest/fixtures.py:1221: AssertionError
=========================== short test summary info ============================
ERROR
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkSimpleModel::test_core_python_fs
ERROR
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkSimpleModel::test_core_json_fs
ERROR
tests/benchmarks/test_micro_benchmarks.py::TestModelLarge::test_core_python
ERROR
tests/benchmarks/test_micro_benchmarks.py::TestModelLarge::test_core_json_fs
ERROR
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateTime::test_core_python
ERROR
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateTime::test_model_core_json
ERROR
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateTime::test_core_raw
ERROR
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateTime::test_core_str
ERROR
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateTime::test_core_future
ERROR
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateTime::test_core_future_str
ERROR
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateX::test_date_from_date
ERROR
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateX::test_date_from_str
ERROR
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateX::test_date_from_datetime
ERROR
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateX::test_date_from_datetime_str
ERROR
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID::test_uuid_from_string_core
ERROR
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID::test_uuid_from_string_pyd
ERROR
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID::test_uuid_from_uuid_core
ERROR
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID::test_uuid_from_uuid_pyd
ERROR
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID::test_core_python
ERROR
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID::test_model_core_json
ERROR
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID::test_core_raw
ERROR
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID::test_core_str
ERROR
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDecimal::test_decimal_from_string_core
ERROR
tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDecimal::test_decimal_from_string_pyd
ERROR
tests/benchmarks/test_serialization_micro.py::TestBenchmarkSimpleModel::test_core_dict
ERROR
tests/benchmarks/test_serialization_micro.py::TestBenchmarkSimpleModel::test_core_dict_filter
ERROR
tests/benchmarks/test_serialization_micro.py::TestBenchmarkSimpleModel::test_core_json
ERROR tests/validators/test_union.py::TestModelClass::test_model_a - pytest.P...
ERROR tests/validators/test_union.py::TestModelClass::test_model_b - Assertio...
ERROR tests/validators/test_union.py::TestModelClass::test_exact_check - Asse...
ERROR tests/validators/test_union.py::TestModelClass::test_error - AssertionE...
ERROR tests/validators/test_union.py::TestModelClassSimilar::test_model_a - p...
ERROR
tests/validators/test_union.py::TestModelClassSimilar::test_model_b_preferred
ERROR
tests/validators/test_union.py::TestModelClassSimilar::test_model_b_not_ignored
========== 5758 passed, 127 skipped, 10 xfailed, 34 errors in 23.13s ===========
E: pybuild pybuild:485: test: plugin pyproject failed with: exit code=1: cd
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_pydantic-core/build; python3.14 -m
pytest tests
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.13
3.14" --dir pydantic-core --parallel=2 returned exit code 13
make[1]: *** [debian/rules:35: override_dh_auto_test] Error 25
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:18: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit
status 2
--------------------------------------------------------------------------------
--- End Message ---
--- Begin Message ---
Source: pydantic-core
Source-Version: 2.46.4-2
On Sun, Jun 28, 2026 at 08:51:58PM +0000, Santiago Vila wrote:
Package: src:pydantic-core
Version: 2.46.4-1
Severity: serious
Tags: ftbfs forky sid
Dear maintainer:
During a rebuild of all packages in unstable, this package failed to build.
Fixed earlier today:
pydantic-core (2.46.4-2) unstable; urgency=medium
* Fix test failures with pytest >= 9.1.0.
-- Colin Watson <[email protected]> Sun, 28 Jun 2026 16:49:15 +0100
Thanks,
--
Colin Watson (he/him) [[email protected]]
--- End Message ---