Skip to content

Commit bda9a2b

Browse files
audristroyerclaude
andcommitted
Fix update_dataset/update_document: backend uses POST not PUT
The NDI Cloud backend (ndi-cloud-node) registers update routes as POST, not PUT. Our Python client was sending PUT requests which resulted in 404 errors because Express couldn't match the route. - datasets.py: update_dataset() now uses client.post() - documents.py: update_document() now uses client.post() - Removed unnecessary retry_on_404 from update tests (root cause was wrong HTTP method, not eventual consistency) Local results: 55 passed, 3 skipped, 0 failed Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent fa3c3f3 commit bda9a2b

3 files changed

Lines changed: 4 additions & 8 deletions

File tree

src/ndi/cloud/api/datasets.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ def update_dataset(
4545
dataset_id: str,
4646
**fields: Any,
4747
) -> dict[str, Any]:
48-
"""PUT /datasets/{datasetId}"""
49-
return client.put(
48+
"""POST /datasets/{datasetId}"""
49+
return client.post(
5050
"/datasets/{datasetId}",
5151
json=fields,
5252
datasetId=dataset_id,

src/ndi/cloud/api/documents.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ def update_document(
4545
document_id: str,
4646
doc_json: dict[str, Any],
4747
) -> dict[str, Any]:
48-
"""PUT /datasets/{datasetId}/documents/{documentId}"""
49-
return client.put(
48+
"""POST /datasets/{datasetId}/documents/{documentId}"""
49+
return client.post(
5050
"/datasets/{datasetId}/documents/{documentId}",
5151
json=doc_json,
5252
datasetId=dataset_id,

tests/test_cloud_live.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -383,10 +383,8 @@ def test_update_dataset(self, client, fresh_dataset):
383383
from ndi.cloud.api.datasets import get_dataset, update_dataset
384384

385385
new_name = "NDI_PYTEST_UPDATED_NAME"
386-
# Retry on 404 too — MongoDB secondary reads may lag after creation
387386
_retry_on_server_error(
388387
lambda: update_dataset(client, fresh_dataset, name=new_name),
389-
retry_on_404=True,
390388
)
391389

392390
ds = get_dataset(client, fresh_dataset)
@@ -494,10 +492,8 @@ def test_update_document(self, client, fresh_dataset):
494492
"document_class": {"class_name": "ndi_pytest_update"},
495493
"base": {"name": "modified"},
496494
}
497-
# Retry on 404 — MongoDB secondary reads may lag after add
498495
_retry_on_server_error(
499496
lambda: update_document(client, fresh_dataset, doc_id, updated_json),
500-
retry_on_404=True,
501497
)
502498
fetched = get_document(client, fresh_dataset, doc_id)
503499
assert fetched.get("base", {}).get("name") == "modified"

0 commit comments

Comments
 (0)