- Create test_cloud_provider_contract.py with parametrized suite for Nextcloud, WebDAV, Google Drive, OneDrive - Assert canonical (connection_id, user_id, parent_ref=None, page_token=None) signature, CloudListing return type, trusted caller identity propagation, metadata normalization, pagination completeness, and forbidden-operation spies - Add synthetic credential-free fixtures: nextcloud_root.xml, webdav_root.xml, google_drive_pages.json, onedrive_pages.json - 9 tests fail for nextcloud (expected RED state — incompatible list_folder override) - All webdav, google_drive, onedrive contract tests pass
91 lines
2.3 KiB
JSON
91 lines
2.3 KiB
JSON
{
|
|
"_comment": "Synthetic Google Drive fixture — no real credentials, tokens, or user data.",
|
|
|
|
"root_page1": {
|
|
"nextPageToken": "page2token_synthetic",
|
|
"files": [
|
|
{
|
|
"id": "synth_folder_a1b2c3",
|
|
"name": "Projects",
|
|
"mimeType": "application/vnd.google-apps.folder",
|
|
"modifiedTime": "2024-06-10T12:00:00Z"
|
|
},
|
|
{
|
|
"id": "synth_folder_d4e5f6",
|
|
"name": "Archive",
|
|
"mimeType": "application/vnd.google-apps.folder",
|
|
"modifiedTime": "2024-06-11T08:00:00Z"
|
|
},
|
|
{
|
|
"id": "synth_file_g7h8i9",
|
|
"name": "report.pdf",
|
|
"mimeType": "application/pdf",
|
|
"size": "204800",
|
|
"modifiedTime": "2024-06-12T14:00:00Z",
|
|
"md5Checksum": "abc123synth"
|
|
}
|
|
]
|
|
},
|
|
|
|
"root_page2": {
|
|
"files": [
|
|
{
|
|
"id": "synth_file_j0k1l2",
|
|
"name": "notes.txt",
|
|
"mimeType": "text/plain",
|
|
"size": "1024",
|
|
"modifiedTime": "2024-06-13T10:00:00Z",
|
|
"md5Checksum": "def456synth"
|
|
},
|
|
{
|
|
"id": "synth_native_m3n4o5",
|
|
"name": "Meeting Notes",
|
|
"mimeType": "application/vnd.google-apps.document",
|
|
"modifiedTime": "2024-06-14T09:30:00Z"
|
|
}
|
|
]
|
|
},
|
|
|
|
"nested_folder": {
|
|
"files": [
|
|
{
|
|
"id": "synth_nested_p6q7r8",
|
|
"name": "sub-document.docx",
|
|
"mimeType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
|
"size": "51200",
|
|
"modifiedTime": "2024-06-15T11:00:00Z"
|
|
}
|
|
]
|
|
},
|
|
|
|
"trashed_excluded": {
|
|
"files": [
|
|
{
|
|
"id": "synth_file_s9t0u1",
|
|
"name": "visible.pdf",
|
|
"mimeType": "application/pdf",
|
|
"size": "10240",
|
|
"modifiedTime": "2024-06-16T10:00:00Z"
|
|
}
|
|
],
|
|
"_note": "trashed=false query param ensures trashed items are not returned"
|
|
},
|
|
|
|
"native_docs_nullable_size": {
|
|
"files": [
|
|
{
|
|
"id": "synth_doc_v2w3x4",
|
|
"name": "Spreadsheet",
|
|
"mimeType": "application/vnd.google-apps.spreadsheet",
|
|
"modifiedTime": "2024-06-17T13:00:00Z"
|
|
},
|
|
{
|
|
"id": "synth_slides_y5z6a7",
|
|
"name": "Presentation",
|
|
"mimeType": "application/vnd.google-apps.presentation",
|
|
"modifiedTime": "2024-06-18T14:00:00Z"
|
|
}
|
|
]
|
|
}
|
|
}
|