Skip to content

Commit 6f8d06c

Browse files
Accept deleted image revision fields on delete_image
Parse optional id, imageName, and uploaded from DELETE /images/:key so callers can tell which revision was removed. Co-authored-by: shri <shri@metlo.com>
1 parent 26a587b commit 6f8d06c

2 files changed

Lines changed: 29 additions & 2 deletions

File tree

hyperbrowser/models/sandbox.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -353,6 +353,9 @@ class SandboxSnapshotDeleteResult(SandboxBaseModel):
353353

354354
class SandboxImageDeleteResult(SandboxBaseModel):
355355
deleted: bool
356+
id: Optional[str] = None
357+
image_name: Optional[str] = Field(default=None, alias="imageName")
358+
uploaded: Optional[bool] = None
356359

357360

358361
class SandboxMemorySnapshotParams(SandboxBaseModel):

tests/test_sandbox_wire_contract.py

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -444,7 +444,16 @@ def request(self, method, url, params=None, json=None):
444444
elif "/images/builds/" in url:
445445
payload = IMAGE_BUILD_PAYLOAD
446446
elif "/images/" in url:
447-
payload = {"deleted": True} if method == "DELETE" else IMAGE_LIST_PAYLOAD
447+
payload = (
448+
{
449+
"deleted": True,
450+
"id": "img_123",
451+
"imageName": "custom_node",
452+
"uploaded": True,
453+
}
454+
if method == "DELETE"
455+
else IMAGE_LIST_PAYLOAD
456+
)
448457
elif url.endswith("/images"):
449458
payload = IMAGE_LIST_PAYLOAD
450459
elif url.endswith("/snapshots"):
@@ -648,7 +657,16 @@ async def request(self, method, url, params=None, json=None):
648657
elif "/images/builds/" in url:
649658
payload = IMAGE_BUILD_PAYLOAD
650659
elif "/images/" in url:
651-
payload = {"deleted": True} if method == "DELETE" else IMAGE_LIST_PAYLOAD
660+
payload = (
661+
{
662+
"deleted": True,
663+
"id": "img_123",
664+
"imageName": "custom_node",
665+
"uploaded": True,
666+
}
667+
if method == "DELETE"
668+
else IMAGE_LIST_PAYLOAD
669+
)
652670
elif url.endswith("/images"):
653671
payload = IMAGE_LIST_PAYLOAD
654672
elif url.endswith("/snapshots"):
@@ -1032,6 +1050,9 @@ def test_sync_sandbox_snapshot_and_image_build_list_contract(use_legacy_model):
10321050
assert delete_image_call["method"] == "DELETE"
10331051
assert delete_image_call["url"].endswith("/images/custom_node")
10341052
assert deleted_image.deleted is True
1053+
assert deleted_image.id == "img_123"
1054+
assert deleted_image.image_name == "custom_node"
1055+
assert deleted_image.uploaded is True
10351056

10361057

10371058
@pytest.mark.parametrize(
@@ -1669,6 +1690,9 @@ async def test_async_sandbox_snapshot_and_image_build_list_contract(
16691690
assert delete_image_call["method"] == "DELETE"
16701691
assert delete_image_call["url"].endswith("/images/custom_node")
16711692
assert deleted_image.deleted is True
1693+
assert deleted_image.id == "img_123"
1694+
assert deleted_image.image_name == "custom_node"
1695+
assert deleted_image.uploaded is True
16721696

16731697

16741698
@pytest.mark.anyio

0 commit comments

Comments
 (0)