curo1305
fd6b561899
test(13-01): extend provider contract suites for four-provider mutable-operation parity
...
- Add Phase 13 mutable-operation RED tests to test_cloud_backends.py:
TestGoogleDriveMutableContract (D-17 scope, create/rename/move/delete/upload),
TestOneDriveMutableContract (CONN-02 token handoff, permanent-delete disclosure,
nextLink SSRF guard), TestNextcloudMutableContract (create-folder SSRF, delete
normalization), TestWebDAVMutableContract (permanent-delete, move SSRF, no
cloud_items imports)
- Add Phase 13 mutable-operation RED tests to test_cloud_provider_contract.py:
TestMutableAdapterContract (method existence, async contract, canonical signatures
for all four providers), TestMutableAdapterResultNormalization (normalized kind/reason
return types, conflict normalization documentation, unsupported-capability disclosure)
- All new tests fail against the current codebase — mutable adapter methods do not
exist yet (expected RED); all prior Phase 12 tests remain green
2026-06-22 18:01:15 +02:00
curo1305
805fe44bfb
feat(12.1-01): add cross-origin nextLink guard and Drive/OneDrive contract tests
...
- Validate @odata.nextLink hostname against graph.microsoft.com before following
(T-12.1-03); cross-origin nextLink returns complete=False with prior items retained
- Add TestOneDriveCrossOriginNextLink: cross-origin rejection, same-origin follows,
page failure retains prior items
- Add TestGoogleDriveAuthFailureControl: 401 returns complete=False, page1+page2
error retains page1 items
- All 163 four-provider contract tests pass
2026-06-22 08:12:39 +02:00
curo1305
ff33439f0a
feat(12-02): normalize all four providers into CloudResourceAdapter contract
...
- GoogleDriveBackend: list_folder with full pagination, native doc size=None, get_capabilities
- OneDriveBackend: list_folder with @odata.nextLink pagination, get_capabilities
- WebDAVBackend: list_folder via PROPFIND with SSRF re-validation, get_capabilities
- NextcloudBackend: inherits CloudResourceAdapter from WebDAVBackend
- build_cloud_resource_adapter() added to factory
- 22 new contract/behavior/pagination/no-byte-download tests (51 total pass)
2026-06-18 22:45:09 +02:00