python-anyio: add test.sh and python3-urllib dep

Exercise anyio end-to-end with the structured-concurrency example
from the upstream "Creating and managing tasks" docs: spawn 5 child
tasks via create_task_group(), each appending to a shared list, then
verify all completed.

Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
This commit is contained in:
Alexandru Ardelean
2026-05-31 11:12:04 +03:00
committed by Alexandru Ardelean
parent f8921064dc
commit a61f98dfcd
2 changed files with 35 additions and 2 deletions
+3 -2
View File
@@ -4,7 +4,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=python-anyio
PKG_VERSION:=4.13.0
PKG_RELEASE:=1
PKG_RELEASE:=2
PYPI_NAME:=anyio
PKG_HASH:=334b70e641fd2221c1505b3890c69882fe4a2df910cba14d97019b90b24439dc
@@ -36,7 +36,8 @@ define Package/python3-anyio
+python3-idna \
+python3-light \
+python3-logging \
+python3-openssl
+python3-openssl \
+python3-urllib
endef
define Package/python3-anyio/description
+32
View File
@@ -0,0 +1,32 @@
#!/bin/sh
[ "$1" = python3-anyio ] || exit 0
# anyio has no module-level __version__; apk already verifies the package
# version, so this test exercises runtime behaviour instead.
python3 - << 'EOF'
from anyio import create_task_group, run, sleep
# Spawn N children in a task group and check they all complete via a shared
# sink — exercises the asyncio backend and structured-concurrency wait barrier.
results = []
async def child(num: int) -> None:
await sleep(0)
results.append(num)
async def main() -> None:
async with create_task_group() as tg:
for num in range(5):
tg.start_soon(child, num)
run(main)
assert sorted(results) == [0, 1, 2, 3, 4], f"unexpected child completions: {results}"
print("python3-anyio OK")
EOF