DEV-14971: Python SDK storage-service compatibility unit tests#459
DEV-14971: Python SDK storage-service compatibility unit tests#459
Conversation
…ervice response shapes Audit confirms no client patches needed — storage-service produces the same response shapes Rainbow does: - /files/store: path/name/upload_type match what UploadDocument expects - indico-file:// URI construction/round-trip via CreateStorageURLs works - RetrieveStorageObject strips indico-file:// prefix correctly Tests mock at the HTTP level; no running service required. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Storage migration freeze checkpoint (2026-04-15): PR remains under NOT MERGE policy, but is still failing from 2026-04-12. Requesting a CI rerun to refresh review evidence while keeping this PR unmerged. |
|
Correction: failing check context is publish_python_sdk-unit_tests. Please rerun this CI context for fresh freeze-period validation signal (PR remains NOT MERGE). |
|
Escalation: check context publish_python_sdk-unit_tests is still stale (last started 2026-04-12T00:02:54Z) after rerun request. Requesting CI run owners/maintainers to trigger a fresh Harness run so we can refresh freeze-period validation evidence. PR remains NOT MERGE. |
|
@goatrocks @Sung96kim @jacobmanderson @nicholas-lockhart @arsandhu and @IndicoDataSolutions/pr-be-indicodata-ai: targeted rerun request for stale Harness context publish_python_sdk-unit_tests (still on 2026-04-12T00:02:54Z). Please trigger/own a fresh run for freeze-period validation evidence. PR remains NOT MERGE. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 00d3720. Configure here.
| uri = "indico-file:///storage/uploads/42/abc-uuid" | ||
| req = RetrieveStorageObject(uri) | ||
| assert req.path == "/storage/uploads/42/abc-uuid" | ||
| assert req.method == HTTPMethod.GET |
There was a problem hiding this comment.
Test requests unused mock_request and client fixtures
Low Severity
test_create_storage_urls_round_trips_through_retrieve declares mock_request and client as parameters but never references either in the test body. These fixtures trigger HTTP client initialization (including an auth token refresh mock), adding unnecessary setup overhead and coupling. Compare with test_retrieve_storage_object_strips_indico_file_scheme and test_retrieve_storage_object_accepts_dict_with_url_key, which correctly omit fixtures they don't need.
Reviewed by Cursor Bugbot for commit 00d3720. Configure here.


Summary
/files/storereturnspath/name/upload_typematching exactly whatUploadDocumentexpects;indico-file://URI handling is unchangedUploadDocument,CreateStorageURLs, andRetrieveStorageObjectagainst theLegacyUploadResponseItemresponse shapeTest plan
test_upload_document_posts_to_storage_files_store— confirms POST target pathtest_upload_document_processes_path_name_upload_type— confirms response field mappingtest_upload_document_handles_multiple_files— multi-file upload batchtest_create_storage_urls_builds_indico_file_uris— URI construction from responsetest_create_storage_urls_round_trips_through_retrieve— round-trip URI → pathtest_retrieve_storage_object_strips_indico_file_scheme— path extractiontest_retrieve_storage_object_accepts_dict_with_url_key— dict input varianttest_retrieve_storage_object_fetches_content— end-to-end GET with mock responseAll 8 tests pass. No network required.
Part of DEV-14699 storage-service migration epic.
🤖 Generated with Claude Code
Note
Low Risk
Low risk: adds/adjusts test-only dependencies and introduces new unit tests without changing runtime SDK behavior.
Overview
Adds new unit tests that assert the SDK’s storage flows remain compatible with storage-service responses, covering
UploadDocumentresponse parsing,CreateStorageURLsURI construction, andRetrieveStorageObjectpath handling (including redirects).Adds tests for
_UploadSMExportsigned-URL uploads (success and failure paths) and for theuv-dynamic-versioningrelease tag regex inpyproject.toml. Updates dev/test dependencies (pytest-asyncio,requests-mock,msgpack, andtomlifor Python <3.11) and refreshesuv.lockaccordingly.Reviewed by Cursor Bugbot for commit 34bdc7f. Bugbot is set up for automated code reviews on this repo. Configure here.