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.