--- Begin Message ---
Package: src:litestar
Version: 2.15.2-1
Severity: serious
Tags: ftbfs trixie sid
Dear maintainer:
During a rebuild of all packages in unstable, your package failed to build:
--------------------------------------------------------------------------------
[...]
docs/examples/testing/test_get_session_data_async.py . [ 99%]
docs/examples/testing/test_health_check_async.py . [ 99%]
docs/examples/testing/test_health_check_sync.py . [ 99%]
docs/examples/testing/test_set_session_data.py . [ 99%]
docs/examples/testing/test_set_session_data_async.py . [ 99%]
docs/examples/testing/test_websocket.py . [100%]
=================================== FAILURES ===================================
___________________________ test_create_examples[v1] ___________________________
pydantic_version = 'v1'
def test_create_examples(pydantic_version: PydanticVersion) -> None:
lib = pydantic_v1 if pydantic_version == "v1" else pydantic_v2
class Model(lib.BaseModel): # type: ignore[name-defined, misc]
foo: str = lib.Field(examples=["32"])
bar: str
@get("/example")
async def handler() -> Model:
return Model(foo="1", bar="2")
app = Litestar(
[handler],
openapi_config=OpenAPIConfig(
title="Test",
version="0",
create_examples=True,
),
)
> schema = app.openapi_schema.to_schema()
tests/unit/test_plugins/test_pydantic/test_openapi.py:584:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
litestar/app.py:674: in openapi_schema
return self.plugins.get(OpenAPIPlugin).provide_openapi()
litestar/_openapi/plugin.py:94: in provide_openapi
self._openapi = self._build_openapi()
litestar/_openapi/plugin.py:83: in _build_openapi
path_item = create_path_item_for_route(context, route)
litestar/_openapi/path_item.py:139: in create_path_item_for_route
return path_item_factory.create_path_item()
litestar/_openapi/path_item.py:44: in create_path_item
operation = self.create_operation_for_handler_method(route_handler,
HttpMethod(http_method))
litestar/_openapi/path_item.py:73: in create_operation_for_handler_method
responses = create_responses_for_handler(
litestar/_openapi/responses.py:340: in create_responses_for_handler
return ResponseFactory(context,
route_handler).create_responses(raises_validation_error=raises_validation_error)
litestar/_openapi/responses.py:91: in create_responses
str(self.route_handler.status_code): self.create_success_response(),
litestar/_openapi/responses.py:150: in create_success_response
result = self.schema_creator.for_field_definition(field_def)
litestar/_openapi/schema_generation/schema.py:315: in for_field_definition
result = self.for_plugin(field_definition, plugin_for_annotation)
litestar/_openapi/schema_generation/schema.py:499: in for_plugin
schema = plugin.to_openapi_schema(field_definition=field_definition,
schema_creator=self)
litestar/plugins/pydantic/plugins/schema.py:247: in to_openapi_schema
return self.for_pydantic_model(field_definition=field_definition,
schema_creator=schema_creator)
litestar/plugins/pydantic/plugins/schema.py:264: in for_pydantic_model
return schema_creator.create_component_schema(
litestar/_openapi/schema_generation/schema.py:663: in create_component_schema
schema.properties = {k: self.for_field_definition(v) for k, v in
property_fields.items()}
litestar/_openapi/schema_generation/schema.py:345: in for_field_definition
return self.process_schema_result(field_definition, result) if
isinstance(result, Schema) else result
litestar/_openapi/schema_generation/schema.py:625: in process_schema_result
schema.examples =
get_json_schema_formatted_examples(create_examples_for_field(field))
litestar/_openapi/schema_generation/examples.py:80: in create_examples_for_field
field_meta = _create_field_meta(replace(field,
annotation=_normalize_example_value(field.annotation)))
litestar/_openapi/schema_generation/examples.py:62: in _create_field_meta
return FieldMeta.from_type(
/usr/lib/python3/dist-packages/polyfactory/field_meta.py:132: in from_type
check_for_deprecated_parameters(
/usr/lib/python3/dist-packages/polyfactory/utils/deprecation.py:141: in
check_for_deprecated_parameters
warn_deprecation(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
version = '2.11.0', deprecated_name = 'random', kind = 'parameter'
def warn_deprecation(
version: str,
deprecated_name: str,
kind: DeprecatedKind,
*,
removal_in: str | None = None,
alternative: str | None = None,
info: str | None = None,
pending: bool = False,
) -> None:
"""Warn about a call to a (soon to be) deprecated function.
Args:
version: Polyfactory version where the deprecation will occur.
deprecated_name: Name of the deprecated function.
removal_in: Polyfactory version where the deprecated function will
be removed.
alternative: Name of a function that should be used instead.
info: Additional information.
pending: Use ``PendingDeprecationWarning`` instead of
``DeprecationWarning``.
kind: Type of the deprecated thing.
"""
parts = []
if kind == "import":
access_type = "Import of"
elif kind in {"function", "method"}:
access_type = "Call to"
else:
access_type = "Use of"
if pending:
parts.append(f"{access_type} {kind} awaiting deprecation
{deprecated_name!r}")
else:
parts.append(f"{access_type} deprecated {kind} {deprecated_name!r}")
parts.extend(
(
f"Deprecated in polyfactory {version}",
f"This {kind} will be removed in {removal_in or 'the next major
version'}",
)
)
if alternative:
parts.append(f"Use {alternative!r} instead")
if info:
parts.append(info)
text = ". ".join(parts)
warning_class = PendingDeprecationWarning if pending else
DeprecationWarning
> warn(text, warning_class, stacklevel=2)
E DeprecationWarning: Use of deprecated parameter 'random'. Deprecated in
polyfactory 2.11.0. This parameter will be removed in the next major version
/usr/lib/python3/dist-packages/polyfactory/utils/deprecation.py:68:
DeprecationWarning
___________________________ test_create_examples[v2] ___________________________
pydantic_version = 'v2'
def test_create_examples(pydantic_version: PydanticVersion) -> None:
lib = pydantic_v1 if pydantic_version == "v1" else pydantic_v2
class Model(lib.BaseModel): # type: ignore[name-defined, misc]
foo: str = lib.Field(examples=["32"])
bar: str
@get("/example")
async def handler() -> Model:
return Model(foo="1", bar="2")
app = Litestar(
[handler],
openapi_config=OpenAPIConfig(
title="Test",
version="0",
create_examples=True,
),
)
> schema = app.openapi_schema.to_schema()
tests/unit/test_plugins/test_pydantic/test_openapi.py:584:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
litestar/app.py:674: in openapi_schema
return self.plugins.get(OpenAPIPlugin).provide_openapi()
litestar/_openapi/plugin.py:94: in provide_openapi
self._openapi = self._build_openapi()
litestar/_openapi/plugin.py:83: in _build_openapi
path_item = create_path_item_for_route(context, route)
litestar/_openapi/path_item.py:139: in create_path_item_for_route
return path_item_factory.create_path_item()
litestar/_openapi/path_item.py:44: in create_path_item
operation = self.create_operation_for_handler_method(route_handler,
HttpMethod(http_method))
litestar/_openapi/path_item.py:73: in create_operation_for_handler_method
responses = create_responses_for_handler(
litestar/_openapi/responses.py:340: in create_responses_for_handler
return ResponseFactory(context,
route_handler).create_responses(raises_validation_error=raises_validation_error)
litestar/_openapi/responses.py:91: in create_responses
str(self.route_handler.status_code): self.create_success_response(),
litestar/_openapi/responses.py:150: in create_success_response
result = self.schema_creator.for_field_definition(field_def)
litestar/_openapi/schema_generation/schema.py:315: in for_field_definition
result = self.for_plugin(field_definition, plugin_for_annotation)
litestar/_openapi/schema_generation/schema.py:499: in for_plugin
schema = plugin.to_openapi_schema(field_definition=field_definition,
schema_creator=self)
litestar/plugins/pydantic/plugins/schema.py:247: in to_openapi_schema
return self.for_pydantic_model(field_definition=field_definition,
schema_creator=schema_creator)
litestar/plugins/pydantic/plugins/schema.py:264: in for_pydantic_model
return schema_creator.create_component_schema(
litestar/_openapi/schema_generation/schema.py:663: in create_component_schema
schema.properties = {k: self.for_field_definition(v) for k, v in
property_fields.items()}
litestar/_openapi/schema_generation/schema.py:345: in for_field_definition
return self.process_schema_result(field_definition, result) if
isinstance(result, Schema) else result
litestar/_openapi/schema_generation/schema.py:625: in process_schema_result
schema.examples =
get_json_schema_formatted_examples(create_examples_for_field(field))
litestar/_openapi/schema_generation/examples.py:80: in create_examples_for_field
field_meta = _create_field_meta(replace(field,
annotation=_normalize_example_value(field.annotation)))
litestar/_openapi/schema_generation/examples.py:62: in _create_field_meta
return FieldMeta.from_type(
/usr/lib/python3/dist-packages/polyfactory/field_meta.py:132: in from_type
check_for_deprecated_parameters(
/usr/lib/python3/dist-packages/polyfactory/utils/deprecation.py:141: in
check_for_deprecated_parameters
warn_deprecation(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
version = '2.11.0', deprecated_name = 'random', kind = 'parameter'
def warn_deprecation(
version: str,
deprecated_name: str,
kind: DeprecatedKind,
*,
removal_in: str | None = None,
alternative: str | None = None,
info: str | None = None,
pending: bool = False,
) -> None:
"""Warn about a call to a (soon to be) deprecated function.
Args:
version: Polyfactory version where the deprecation will occur.
deprecated_name: Name of the deprecated function.
removal_in: Polyfactory version where the deprecated function will
be removed.
alternative: Name of a function that should be used instead.
info: Additional information.
pending: Use ``PendingDeprecationWarning`` instead of
``DeprecationWarning``.
kind: Type of the deprecated thing.
"""
parts = []
if kind == "import":
access_type = "Import of"
elif kind in {"function", "method"}:
access_type = "Call to"
else:
access_type = "Use of"
if pending:
parts.append(f"{access_type} {kind} awaiting deprecation
{deprecated_name!r}")
else:
parts.append(f"{access_type} deprecated {kind} {deprecated_name!r}")
parts.extend(
(
f"Deprecated in polyfactory {version}",
f"This {kind} will be removed in {removal_in or 'the next major
version'}",
)
)
if alternative:
parts.append(f"Use {alternative!r} instead")
if info:
parts.append(info)
text = ". ".join(parts)
warning_class = PendingDeprecationWarning if pending else
DeprecationWarning
> warn(text, warning_class, stacklevel=2)
E DeprecationWarning: Use of deprecated parameter 'random'. Deprecated in
polyfactory 2.11.0. This parameter will be removed in the next major version
/usr/lib/python3/dist-packages/polyfactory/utils/deprecation.py:68:
DeprecationWarning
=============================== warnings summary ===============================
tests/unit/test_concurrency.py::test_trio_uses_limiter
/usr/lib/python3/dist-packages/_pytest/unraisableexception.py:85:
PytestUnraisableExceptionWarning: Exception ignored in: <socket.socket fd=-1,
family=1, type=1, proto=0>
Traceback (most recent call last):
File "/usr/lib/python3.13/unittest/mock.py", line 459, in __new__
instance = _safe_super(NonCallableMock, cls).__new__(new)
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
ResourceWarning: unclosed <socket.socket fd=22, family=1, type=1, proto=0>
warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))
tests/unit/test_connection/test_base.py::test_connection_base_properties
/usr/lib/python3/dist-packages/_pytest/unraisableexception.py:85:
PytestUnraisableExceptionWarning: Exception ignored in: <socket.socket fd=-1,
family=1, type=1, proto=0>
Traceback (most recent call last):
File
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_litestar/build/litestar/handlers/base.py",
line 319, in resolve_layered_parameters
parameter_kwargs.update(getattr(layer, "parameters", {}) or {})
~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
ResourceWarning: unclosed <socket.socket fd=16, family=1, type=1, proto=0>
warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))
tests/unit/test_contrib/test_htmx/test_htmx_request.py::test_triggering_event_bad_json
/usr/lib/python3/dist-packages/_pytest/unraisableexception.py:85:
PytestUnraisableExceptionWarning: Exception ignored in: <socket.socket fd=-1,
family=1, type=1, proto=0>
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/anyio/_backends/_asyncio.py", line
715, in __init__
self._tasks: set[asyncio.Task] = set()
~~~^^
ResourceWarning: unclosed <socket.socket fd=13, family=1, type=1, proto=0>
warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED
tests/unit/test_plugins/test_pydantic/test_openapi.py::test_create_examples[v1]
FAILED
tests/unit/test_plugins/test_pydantic/test_openapi.py::test_create_examples[v2]
= 2 failed, 4641 passed, 3 skipped, 23 deselected, 1 xfailed, 3 warnings in
64.02s (0:01:04) =
<sys>:0: ResourceWarning: unclosed database in <sqlite3.Connection object at
0x7fccec7f9e40>
<sys>:0: ResourceWarning: unclosed database in <sqlite3.Connection object at
0x7fccf0a60c70>
<sys>:0: ResourceWarning: unclosed database in <sqlite3.Connection object at
0x7fccee9107c0>
<sys>:0: ResourceWarning: unclosed database in <sqlite3.Connection object at
0x7fccd016c310>
E: pybuild pybuild:389: test: plugin pyproject failed with:
[too-long-redacted] rtal and not test_with_stores '
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.13
returned exit code 13
make: *** [debian/rules:32: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------
The above is just how the build ends and not necessarily the most relevant part.
If required, the full build log is available here:
https://people.debian.org/~sanvila/build-logs/202505/
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 could not 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:litestar, so that this is still
visible in the BTS web page for this package.
Thanks.
--- End Message ---