mirror of
https://github.com/openwrt/packages.git
synced 2026-06-20 05:40:37 +04:00
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:
committed by
Alexandru Ardelean
parent
f8921064dc
commit
a61f98dfcd
@@ -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
|
||||
|
||||
Executable
+32
@@ -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
|
||||
Reference in New Issue
Block a user