>>> py3-starlette: Building community/py3-starlette 0.37.2-r0 (using abuild 3.12.0-r5) started Wed, 20 Mar 2024 11:57:30 +0000 >>> py3-starlette: Checking sanity of /home/buildozer/aports/community/py3-starlette/APKBUILD... >>> py3-starlette: Analyzing dependencies... >>> py3-starlette: Installing for build: build-base py3-anyio py3-gpep517 py3-hatchling py3-installer py3-httpx py3-itsdangerous py3-jinja2 py3-pytest-forked py3-pytest-xdist py3-python-multipart py3-trio py3-typing-extensions py3-yaml (1/92) Installing libbz2 (1.0.8-r6) (2/92) Installing libffi (3.4.6-r0) (3/92) Installing gdbm (1.23-r1) (4/92) Installing xz-libs (5.6.1-r1) (5/92) Installing mpdecimal (4.0.0-r0) (6/92) Installing libpanelw (6.4_p20240309-r0) (7/92) Installing readline (8.2.10-r0) (8/92) Installing sqlite-libs (3.45.2-r0) (9/92) Installing python3 (3.11.8-r0) (10/92) Installing python3-pycache-pyc0 (3.11.8-r0) (11/92) Installing pyc (3.11.8-r0) (12/92) Installing py3-idna (3.6-r0) (13/92) Installing py3-idna-pyc (3.6-r0) (14/92) Installing py3-curio (1.6-r1) (15/92) Installing py3-curio-pyc (1.6-r1) (16/92) Installing py3-sniffio (1.3.1-r0) (17/92) Installing py3-sniffio-pyc (1.3.1-r0) (18/92) Installing py3-anyio-pyc (3.6.2-r3) (19/92) Installing python3-pyc (3.11.8-r0) (20/92) Installing py3-anyio (3.6.2-r3) (21/92) Installing py3-installer (0.7.0-r1) (22/92) Installing py3-installer-pyc (0.7.0-r1) (23/92) Installing py3-gpep517 (15-r1) (24/92) Installing py3-gpep517-pyc (15-r1) (25/92) Installing py3-editables (0.5-r0) (26/92) Installing py3-editables-pyc (0.5-r0) (27/92) Installing py3-parsing (3.1.2-r0) (28/92) Installing py3-parsing-pyc (3.1.2-r0) (29/92) Installing py3-packaging (24.0-r0) (30/92) Installing py3-packaging-pyc (24.0-r0) (31/92) Installing py3-pathspec (0.12.1-r0) (32/92) Installing py3-pathspec-pyc (0.12.1-r0) (33/92) Installing py3-pluggy (1.4.0-r0) (34/92) Installing py3-pluggy-pyc (1.4.0-r0) (35/92) Installing py3-trove-classifiers (2024.3.3-r0) (36/92) Installing py3-trove-classifiers-pyc (2024.3.3-r0) (37/92) Installing py3-hatchling (1.22.2-r0) (38/92) Installing py3-hatchling-pyc (1.22.2-r0) (39/92) Installing py3-certifi (2024.2.2-r0) (40/92) Installing py3-certifi-pyc (2024.2.2-r0) (41/92) Installing py3-h11 (0.14.0-r3) (42/92) Installing py3-h11-pyc (0.14.0-r3) (43/92) Installing py3-httpcore (0.18.0-r0) (44/92) Installing py3-httpcore-pyc (0.18.0-r0) (45/92) Installing py3-httpx (0.26.0-r0) (46/92) Installing py3-httpx-pyc (0.26.0-r0) (47/92) Installing py3-itsdangerous (2.1.2-r3) (48/92) Installing py3-itsdangerous-pyc (2.1.2-r3) (49/92) Installing py3-markupsafe (2.1.5-r0) (50/92) Installing py3-markupsafe-pyc (2.1.5-r0) (51/92) Installing py3-jinja2 (3.1.3-r0) (52/92) Installing py3-jinja2-pyc (3.1.3-r0) (53/92) Installing py3-iniconfig (1.1.1-r8) (54/92) Installing py3-iniconfig-pyc (1.1.1-r8) (55/92) Installing py3-py (1.11.0-r2) (56/92) Installing py3-py-pyc (1.11.0-r2) (57/92) Installing py3-pytest (8.0.2-r0) (58/92) Installing py3-pytest-pyc (8.0.2-r0) (59/92) Installing py3-pytest-forked (1.6.0-r1) (60/92) Installing py3-pytest-forked-pyc (1.6.0-r1) (61/92) Installing py3-apipkg (2.1.0-r2) (62/92) Installing py3-apipkg-pyc (2.1.0-r2) (63/92) Installing py3-execnet (1.9.0-r2) (64/92) Installing py3-execnet-pyc (1.9.0-r2) (65/92) Installing py3-pytest-xdist (3.5.0-r0) (66/92) Installing py3-pytest-xdist-pyc (3.5.0-r0) (67/92) Installing py3-python-multipart (0.0.9-r0) (68/92) Installing py3-python-multipart-pyc (0.0.9-r0) (69/92) Installing py3-attrs (23.2.0-r0) (70/92) Installing py3-attrs-pyc (23.2.0-r0) (71/92) Installing py3-async_generator (1.10-r5) (72/92) Installing py3-async_generator-pyc (1.10-r5) (73/92) Installing py3-cparser (2.21-r4) (74/92) Installing py3-cparser-pyc (2.21-r4) (75/92) Installing py3-cffi (1.16.0-r0) (76/92) Installing py3-cffi-pyc (1.16.0-r0) (77/92) Installing py3-cryptography (41.0.7-r0) (78/92) Installing py3-cryptography-pyc (41.0.7-r0) (79/92) Installing py3-openssl (23.3.0-r0) (80/92) Installing py3-openssl-pyc (23.3.0-r0) (81/92) Installing py3-outcome (1.3.0-r0) (82/92) Installing py3-outcome-pyc (1.3.0-r0) (83/92) Installing py3-sortedcontainers (2.4.0-r4) (84/92) Installing py3-sortedcontainers-pyc (2.4.0-r4) (85/92) Installing py3-trio (0.21.0-r3) (86/92) Installing py3-trio-pyc (0.21.0-r3) (87/92) Installing py3-typing-extensions (4.10.0-r0) (88/92) Installing py3-typing-extensions-pyc (4.10.0-r0) (89/92) Installing yaml (0.2.5-r2) (90/92) Installing py3-yaml (6.0.1-r2) (91/92) Installing py3-yaml-pyc (6.0.1-r2) (92/92) Installing .makedepends-py3-starlette (20240320.115731) Executing busybox-1.36.1-r21.trigger OK: 384 MiB in 195 packages >>> py3-starlette: Cleaning up srcdir >>> py3-starlette: Cleaning up pkgdir >>> py3-starlette: Cleaning up tmpdir >>> py3-starlette: Fetching https://distfiles.alpinelinux.org/distfiles/edge/py3-starlette-0.37.2.tar.gz >>> py3-starlette: Fetching https://distfiles.alpinelinux.org/distfiles/edge/py3-starlette-0.37.2.tar.gz >>> py3-starlette: Checking sha512sums... py3-starlette-0.37.2.tar.gz: OK >>> py3-starlette: Unpacking /var/cache/distfiles/py3-starlette-0.37.2.tar.gz... 2024-03-20 11:57:32,069 gpep517 INFO Building wheel via backend hatchling.build 2024-03-20 11:57:32,143 gpep517 INFO The backend produced .dist/starlette-0.37.2-py3-none-any.whl starlette-0.37.2-py3-none-any.whl ============================= test session starts ============================== platform linux -- Python 3.11.8, pytest-8.0.2, pluggy-1.4.0 rootdir: /home/buildozer/aports/community/py3-starlette/src/starlette-0.37.2 configfile: pyproject.toml plugins: anyio-3.6.2, forked-1.6.0, xdist-3.5.0 created: 80/80 workers 80 workers [795 items] ........................................................................ [ 9%] ............................................................................ [ 18%] ........................................................................ [ 27%] ......................................................................... [ 36%] ...................xx................................................... [ 45%] ........................................................................ [ 54%] ......................................................................... [ 64%] ......................................................................... [ 73%] ........................................................................ [ 82%] ........................................................................ [ 91%] .................................................................... [100%] ================================== XFAILURES =================================== ________ test_contextvars[trio-CustomMiddlewareUsingBaseHTTPMiddleware] ________ [gw5] linux -- Python 3.11.8 /usr/bin/python3 test_client_factory = functools.partial(, backend='trio', backend_options={}) middleware_cls = @pytest.mark.parametrize( "middleware_cls", [ CustomMiddlewareWithoutBaseHTTPMiddleware, pytest.param( CustomMiddlewareUsingBaseHTTPMiddleware, marks=pytest.mark.xfail( reason=( "BaseHTTPMiddleware creates a TaskGroup which copies the context" "and erases any changes to it made within the TaskGroup" ), raises=AssertionError, ), ), ], ) def test_contextvars( test_client_factory: TestClientFactory, middleware_cls: type[_MiddlewareClass[Any]], ) -> None: # this has to be an async endpoint because Starlette calls run_in_threadpool # on sync endpoints which has it's own set of peculiarities w.r.t propagating # contextvars (it propagates them forwards but not backwards) async def homepage(request: Request) -> PlainTextResponse: assert ctxvar.get() == "set by middleware" ctxvar.set("set by endpoint") return PlainTextResponse("Homepage") app = Starlette( middleware=[Middleware(middleware_cls)], routes=[Route("/", homepage)] ) client = test_client_factory(app) > response = client.get("/") tests/middleware/test_base.py:258: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ starlette/testclient.py:548: in get return super().get( /usr/lib/python3.11/site-packages/httpx/_client.py:1055: in get return self.request( starlette/testclient.py:516: in request return super().request( /usr/lib/python3.11/site-packages/httpx/_client.py:828: in request return self.send(request, auth=auth, follow_redirects=follow_redirects) /usr/lib/python3.11/site-packages/httpx/_client.py:915: in send response = self._send_handling_auth( /usr/lib/python3.11/site-packages/httpx/_client.py:943: in _send_handling_auth response = self._send_handling_redirects( /usr/lib/python3.11/site-packages/httpx/_client.py:980: in _send_handling_redirects response = self._send_single_request(request) /usr/lib/python3.11/site-packages/httpx/_client.py:1016: in _send_single_request response = transport.handle_request(request) starlette/testclient.py:398: in handle_request raise exc starlette/testclient.py:395: in handle_request portal.call(self.app, scope, receive, send) /usr/lib/python3.11/site-packages/anyio/from_thread.py:283: in call return cast(T_Retval, self.start_task_soon(func, *args).result()) /usr/lib/python3.11/concurrent/futures/_base.py:449: in result return self.__get_result() /usr/lib/python3.11/concurrent/futures/_base.py:401: in __get_result raise self._exception /usr/lib/python3.11/site-packages/anyio/from_thread.py:219: in _call_func retval = await retval starlette/applications.py:123: in __call__ await self.middleware_stack(scope, receive, send) starlette/middleware/errors.py:186: in __call__ raise exc starlette/middleware/errors.py:164: in __call__ await self.app(scope, receive, _send) starlette/middleware/base.py:191: in __call__ response = await self.dispatch_func(request, call_next) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = request = call_next = .call_next at 0xf58fb398> async def dispatch( self, request: Request, call_next: RequestResponseEndpoint, ) -> Response: ctxvar.set("set by middleware") resp = await call_next(request) > assert ctxvar.get() == "set by endpoint" E AssertionError: assert 'set by middleware' == 'set by endpoint' E E - set by endpoint E + set by middleware tests/middleware/test_base.py:221: AssertionError ______ test_contextvars[asyncio-CustomMiddlewareUsingBaseHTTPMiddleware] _______ [gw4] linux -- Python 3.11.8 /usr/bin/python3 test_client_factory = functools.partial(, backend='asyncio', backend_options={}) middleware_cls = @pytest.mark.parametrize( "middleware_cls", [ CustomMiddlewareWithoutBaseHTTPMiddleware, pytest.param( CustomMiddlewareUsingBaseHTTPMiddleware, marks=pytest.mark.xfail( reason=( "BaseHTTPMiddleware creates a TaskGroup which copies the context" "and erases any changes to it made within the TaskGroup" ), raises=AssertionError, ), ), ], ) def test_contextvars( test_client_factory: TestClientFactory, middleware_cls: type[_MiddlewareClass[Any]], ) -> None: # this has to be an async endpoint because Starlette calls run_in_threadpool # on sync endpoints which has it's own set of peculiarities w.r.t propagating # contextvars (it propagates them forwards but not backwards) async def homepage(request: Request) -> PlainTextResponse: assert ctxvar.get() == "set by middleware" ctxvar.set("set by endpoint") return PlainTextResponse("Homepage") app = Starlette( middleware=[Middleware(middleware_cls)], routes=[Route("/", homepage)] ) client = test_client_factory(app) > response = client.get("/") tests/middleware/test_base.py:258: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ starlette/testclient.py:548: in get return super().get( /usr/lib/python3.11/site-packages/httpx/_client.py:1055: in get return self.request( starlette/testclient.py:516: in request return super().request( /usr/lib/python3.11/site-packages/httpx/_client.py:828: in request return self.send(request, auth=auth, follow_redirects=follow_redirects) /usr/lib/python3.11/site-packages/httpx/_client.py:915: in send response = self._send_handling_auth( /usr/lib/python3.11/site-packages/httpx/_client.py:943: in _send_handling_auth response = self._send_handling_redirects( /usr/lib/python3.11/site-packages/httpx/_client.py:980: in _send_handling_redirects response = self._send_single_request(request) /usr/lib/python3.11/site-packages/httpx/_client.py:1016: in _send_single_request response = transport.handle_request(request) starlette/testclient.py:398: in handle_request raise exc starlette/testclient.py:395: in handle_request portal.call(self.app, scope, receive, send) /usr/lib/python3.11/site-packages/anyio/from_thread.py:283: in call return cast(T_Retval, self.start_task_soon(func, *args).result()) /usr/lib/python3.11/concurrent/futures/_base.py:456: in result return self.__get_result() /usr/lib/python3.11/concurrent/futures/_base.py:401: in __get_result raise self._exception /usr/lib/python3.11/site-packages/anyio/from_thread.py:219: in _call_func retval = await retval starlette/applications.py:123: in __call__ await self.middleware_stack(scope, receive, send) starlette/middleware/errors.py:186: in __call__ raise exc starlette/middleware/errors.py:164: in __call__ await self.app(scope, receive, _send) starlette/middleware/base.py:191: in __call__ response = await self.dispatch_func(request, call_next) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = request = call_next = .call_next at 0xf5977578> async def dispatch( self, request: Request, call_next: RequestResponseEndpoint, ) -> Response: ctxvar.set("set by middleware") resp = await call_next(request) > assert ctxvar.get() == "set by endpoint" E AssertionError: assert 'set by middleware' == 'set by endpoint' E E - set by endpoint E + set by middleware tests/middleware/test_base.py:221: AssertionError =========================== short test summary info ============================ XFAIL tests/middleware/test_base.py::test_contextvars[trio-CustomMiddlewareUsingBaseHTTPMiddleware] - BaseHTTPMiddleware creates a TaskGroup which copies the contextand erases any changes to it made within the TaskGroup XFAIL tests/middleware/test_base.py::test_contextvars[asyncio-CustomMiddlewareUsingBaseHTTPMiddleware] - BaseHTTPMiddleware creates a TaskGroup which copies the contextand erases any changes to it made within the TaskGroup ======================== 793 passed, 2 xfailed in 5.50s ======================== >>> py3-starlette: Entering fakeroot... >>> py3-starlette-pyc*: Running split function pyc... '/home/buildozer/aports/community/py3-starlette/pkg/py3-starlette/usr/lib/python3.11/site-packages/starlette/__pycache__' -> '/home/buildozer/aports/community/py3-starlette/pkg/py3-starlette-pyc/usr/lib/python3.11/site-packages/starlette/__pycache__' '/home/buildozer/aports/community/py3-starlette/pkg/py3-starlette/usr/lib/python3.11/site-packages/starlette/middleware/__pycache__' -> '/home/buildozer/aports/community/py3-starlette/pkg/py3-starlette-pyc/usr/lib/python3.11/site-packages/starlette/middleware/__pycache__' >>> py3-starlette-pyc*: Preparing subpackage py3-starlette-pyc... >>> py3-starlette-pyc*: Running postcheck for py3-starlette-pyc >>> py3-starlette*: Running postcheck for py3-starlette >>> py3-starlette*: Preparing package py3-starlette... >>> py3-starlette-pyc*: Tracing dependencies... py3-anyio python3~3.11 >>> py3-starlette-pyc*: Package size: 480.0 KB >>> py3-starlette-pyc*: Compressing data... >>> py3-starlette-pyc*: Create checksum... >>> py3-starlette-pyc*: Create py3-starlette-pyc-0.37.2-r0.apk >>> py3-starlette*: Tracing dependencies... py3-anyio python3~3.11 >>> py3-starlette*: Package size: 380.0 KB >>> py3-starlette*: Compressing data... >>> py3-starlette*: Create checksum... >>> py3-starlette*: Create py3-starlette-0.37.2-r0.apk >>> py3-starlette: Build complete at Wed, 20 Mar 2024 11:57:38 +0000 elapsed time 0h 0m 8s >>> py3-starlette: Cleaning up srcdir >>> py3-starlette: Cleaning up pkgdir >>> py3-starlette: Uninstalling dependencies... (1/92) Purging .makedepends-py3-starlette (20240320.115731) (2/92) Purging py3-gpep517-pyc (15-r1) (3/92) Purging py3-gpep517 (15-r1) (4/92) Purging py3-hatchling-pyc (1.22.2-r0) (5/92) Purging py3-hatchling (1.22.2-r0) (6/92) Purging py3-editables-pyc (0.5-r0) (7/92) Purging py3-editables (0.5-r0) (8/92) Purging py3-pathspec-pyc (0.12.1-r0) (9/92) Purging py3-pathspec (0.12.1-r0) (10/92) Purging py3-trove-classifiers-pyc (2024.3.3-r0) (11/92) Purging py3-trove-classifiers (2024.3.3-r0) (12/92) Purging py3-installer-pyc (0.7.0-r1) (13/92) Purging py3-installer (0.7.0-r1) (14/92) Purging py3-httpx-pyc (0.26.0-r0) (15/92) Purging py3-httpx (0.26.0-r0) (16/92) Purging py3-httpcore-pyc (0.18.0-r0) (17/92) Purging py3-httpcore (0.18.0-r0) (18/92) Purging py3-anyio-pyc (3.6.2-r3) (19/92) Purging py3-anyio (3.6.2-r3) (20/92) Purging py3-certifi-pyc (2024.2.2-r0) (21/92) Purging py3-certifi (2024.2.2-r0) (22/92) Purging py3-h11-pyc (0.14.0-r3) (23/92) Purging py3-h11 (0.14.0-r3) (24/92) Purging py3-itsdangerous-pyc (2.1.2-r3) (25/92) Purging py3-itsdangerous (2.1.2-r3) (26/92) Purging py3-jinja2-pyc (3.1.3-r0) (27/92) Purging py3-jinja2 (3.1.3-r0) (28/92) Purging py3-markupsafe-pyc (2.1.5-r0) (29/92) Purging py3-markupsafe (2.1.5-r0) (30/92) Purging py3-pytest-forked-pyc (1.6.0-r1) (31/92) Purging py3-pytest-forked (1.6.0-r1) (32/92) Purging py3-pytest-xdist-pyc (3.5.0-r0) (33/92) Purging py3-pytest-xdist (3.5.0-r0) (34/92) Purging py3-execnet-pyc (1.9.0-r2) (35/92) Purging py3-execnet (1.9.0-r2) (36/92) Purging py3-apipkg-pyc (2.1.0-r2) (37/92) Purging py3-apipkg (2.1.0-r2) (38/92) Purging py3-pytest-pyc (8.0.2-r0) (39/92) Purging py3-pytest (8.0.2-r0) (40/92) Purging py3-iniconfig-pyc (1.1.1-r8) (41/92) Purging py3-iniconfig (1.1.1-r8) (42/92) Purging py3-packaging-pyc (24.0-r0) (43/92) Purging py3-packaging (24.0-r0) (44/92) Purging py3-parsing-pyc (3.1.2-r0) (45/92) Purging py3-parsing (3.1.2-r0) (46/92) Purging py3-pluggy-pyc (1.4.0-r0) (47/92) Purging py3-pluggy (1.4.0-r0) (48/92) Purging py3-py-pyc (1.11.0-r2) (49/92) Purging py3-py (1.11.0-r2) (50/92) Purging py3-python-multipart-pyc (0.0.9-r0) (51/92) Purging py3-python-multipart (0.0.9-r0) (52/92) Purging py3-trio-pyc (0.21.0-r3) (53/92) Purging py3-trio (0.21.0-r3) (54/92) Purging py3-idna-pyc (3.6-r0) (55/92) Purging py3-idna (3.6-r0) (56/92) Purging py3-openssl-pyc (23.3.0-r0) (57/92) Purging py3-openssl (23.3.0-r0) (58/92) Purging py3-cryptography-pyc (41.0.7-r0) (59/92) Purging py3-cryptography (41.0.7-r0) (60/92) Purging py3-cffi-pyc (1.16.0-r0) (61/92) Purging py3-cffi (1.16.0-r0) (62/92) Purging py3-cparser-pyc (2.21-r4) (63/92) Purging py3-cparser (2.21-r4) (64/92) Purging py3-outcome-pyc (1.3.0-r0) (65/92) Purging py3-outcome (1.3.0-r0) (66/92) Purging py3-async_generator-pyc (1.10-r5) (67/92) Purging py3-async_generator (1.10-r5) (68/92) Purging py3-attrs-pyc (23.2.0-r0) (69/92) Purging py3-attrs (23.2.0-r0) (70/92) Purging py3-sniffio-pyc (1.3.1-r0) (71/92) Purging py3-sniffio (1.3.1-r0) (72/92) Purging py3-curio-pyc (1.6-r1) (73/92) Purging py3-curio (1.6-r1) (74/92) Purging py3-sortedcontainers-pyc (2.4.0-r4) (75/92) Purging py3-sortedcontainers (2.4.0-r4) (76/92) Purging py3-typing-extensions-pyc (4.10.0-r0) (77/92) Purging py3-typing-extensions (4.10.0-r0) (78/92) Purging py3-yaml-pyc (6.0.1-r2) (79/92) Purging py3-yaml (6.0.1-r2) (80/92) Purging python3-pyc (3.11.8-r0) (81/92) Purging python3-pycache-pyc0 (3.11.8-r0) (82/92) Purging pyc (3.11.8-r0) (83/92) Purging yaml (0.2.5-r2) (84/92) Purging python3 (3.11.8-r0) (85/92) Purging gdbm (1.23-r1) (86/92) Purging libbz2 (1.0.8-r6) (87/92) Purging libffi (3.4.6-r0) (88/92) Purging libpanelw (6.4_p20240309-r0) (89/92) Purging mpdecimal (4.0.0-r0) (90/92) Purging readline (8.2.10-r0) (91/92) Purging sqlite-libs (3.45.2-r0) (92/92) Purging xz-libs (5.6.1-r1) Executing busybox-1.36.1-r21.trigger OK: 315 MiB in 103 packages >>> py3-starlette: Updating the community/armhf repository index... >>> py3-starlette: Signing the index...