Skip to content

Commit 9c25f98

Browse files
[cross-repo from server#351] Conformance blocker: complete namespaces parity coverage (#150)
1 parent 3e178b2 commit 9c25f98

3 files changed

Lines changed: 31 additions & 0 deletions

File tree

src/durable_workflow/sync.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -390,6 +390,10 @@ def update_namespace(
390390
)
391391
return result
392392

393+
def delete_namespace(self, name: str) -> NamespaceDescription:
394+
result: NamespaceDescription = _run(self._async.delete_namespace(name))
395+
return result
396+
393397
def set_namespace_external_storage(
394398
self,
395399
name: str | None = None,

tests/test_client.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1090,6 +1090,7 @@ async def test_delete_namespace_matches_polyglot_fixture(self, client: Client) -
10901090
result = await client.delete_namespace(**fixture["sdk_python"]["args"])
10911091

10921092
assert mock.call_args.args[:2] == (fixture["request"]["method"], f"/api{fixture['request']['path']}")
1093+
assert mock.call_args.kwargs.get("json") is None
10931094
assert result.name == fixture["semantic_body"]["name"]
10941095
assert result.status == fixture["semantic_body"]["status"]
10951096
assert result.deleted is not None

tests/test_sync.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -320,6 +320,32 @@ def test_resume_task_queue_build_id_for_unversioned_cohort(self) -> None:
320320
assert mock.call_args.kwargs.get("json") == {"build_id": None}
321321

322322

323+
class TestSyncClientNamespaces:
324+
def test_delete_namespace(self) -> None:
325+
client = Client("http://localhost:8080")
326+
resp = _mock_response(
327+
200,
328+
{
329+
"name": "billing reports",
330+
"status": "deleted",
331+
"deleted": {"workflow_runs": 2},
332+
},
333+
)
334+
with patch.object(
335+
client._async._http, "request", new_callable=AsyncMock, return_value=resp
336+
) as mock:
337+
result = client.delete_namespace("billing reports")
338+
339+
assert result.name == "billing reports"
340+
assert result.status == "deleted"
341+
assert result.deleted == {"workflow_runs": 2}
342+
assert mock.call_args.args[:2] == (
343+
"DELETE",
344+
"/api/namespaces/billing%20reports",
345+
)
346+
assert mock.call_args.kwargs.get("json") is None
347+
348+
323349
class TestSyncClientRunVisibility:
324350
def test_list_workflow_runs(self) -> None:
325351
client = Client("http://localhost:8080")

0 commit comments

Comments
 (0)