diff --git a/api/openapi.yaml b/api/openapi.yaml index 8d3861c..c18c575 100644 --- a/api/openapi.yaml +++ b/api/openapi.yaml @@ -2,7 +2,7 @@ openapi: "3.1.0" info: title: Wrenn API description: MicroVM-based code execution platform API. - version: "0.1.3" + version: "0.1.4" servers: - url: http://localhost:8080 diff --git a/pyproject.toml b/pyproject.toml index 365f7c1..f27b9fc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "wrenn" -version = "0.1.2" +version = "0.1.3" description = "Python SDK for Wrenn" readme = "README.md" license = "MIT" diff --git a/src/wrenn/models/_generated.py b/src/wrenn/models/_generated.py index 5542c2f..656f384 100644 --- a/src/wrenn/models/_generated.py +++ b/src/wrenn/models/_generated.py @@ -1,6 +1,6 @@ # generated by datamodel-codegen: # filename: openapi.yaml -# timestamp: 2026-04-22T20:21:34+00:00 +# timestamp: 2026-05-04T20:57:00+00:00 from __future__ import annotations from pydantic import AwareDatetime, BaseModel, EmailStr, Field diff --git a/tests/test_integration.py b/tests/test_integration.py index ff66983..87941dd 100644 --- a/tests/test_integration.py +++ b/tests/test_integration.py @@ -15,6 +15,17 @@ pytestmark = pytest.mark.integration _env_loaded = False +def _wait_for_pid_dead(capsule: Capsule, pid: int, timeout: float = 5.0) -> bool: + deadline = time.monotonic() + timeout + while time.monotonic() < deadline: + result = capsule.commands.run(f"ps -p {pid} -o stat= 2>/dev/null || true") + state = result.stdout.strip() + if not state or state.startswith("Z"): + return True + time.sleep(0.2) + return False + + def _ensure_env() -> None: global _env_loaded if _env_loaded: @@ -218,11 +229,7 @@ class TestCommands: def test_kill_process(self): handle = self.capsule.commands.run("sleep 30", background=True) self.capsule.commands.kill(handle.pid) - time.sleep(0.5) - - processes = self.capsule.commands.list() - pids = [p.pid for p in processes] - assert handle.pid not in pids + assert _wait_for_pid_dead(self.capsule, handle.pid) def test_run_duration_ms(self): result = self.capsule.commands.run("sleep 1") diff --git a/uv.lock b/uv.lock index 36aea7d..2fd6a46 100644 --- a/uv.lock +++ b/uv.lock @@ -1,5 +1,5 @@ version = 1 -revision = 3 +revision = 2 requires-python = ">=3.13" resolution-markers = [ "python_full_version >= '3.14'",