Files.com 1.6.488__tar.gz → 1.6.490__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {files_com-1.6.488/files_com.egg-info → files_com-1.6.490}/PKG-INFO +1 -1
- files_com-1.6.490/_VERSION +1 -0
- {files_com-1.6.488 → files_com-1.6.490/files_com.egg-info}/PKG-INFO +1 -1
- {files_com-1.6.488 → files_com-1.6.490}/files_com.egg-info/SOURCES.txt +1 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/__init__.py +1 -1
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/file.py +1 -2
- {files_com-1.6.488 → files_com-1.6.490}/pyproject.toml +1 -1
- files_com-1.6.490/tests/test_file_upload.py +103 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_stream_download.py +18 -0
- files_com-1.6.488/_VERSION +0 -1
- {files_com-1.6.488 → files_com-1.6.490}/LICENSE +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/README.md +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_com.egg-info/dependency_links.txt +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_com.egg-info/requires.txt +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_com.egg-info/top_level.txt +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/api.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/api_client.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/error.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/list_obj.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/__init__.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/account_line_item.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/action.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/action_log.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/action_notification_export.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/action_notification_export_result.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/agent_node.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/agent_node_connection.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/agent_node_instance.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/agent_push_update.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/ai_assistant_personality.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/ai_task.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/api_key.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/api_request_log.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/app.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/as2_incoming_message.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/as2_outgoing_message.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/as2_partner.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/as2_station.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/auto.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/automation.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/automation_authoring_schema.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/automation_execution_node.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/automation_log.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/automation_run.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/bandwidth_snapshot.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/behavior.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/bundle.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/bundle_action.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/bundle_download.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/bundle_notification.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/bundle_path.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/bundle_recipient.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/bundle_registration.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/chat_message.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/chat_session.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/child_site_management_policy.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/clickwrap.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/custom_domain.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/desktop_configuration_profile.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/direct_connection_info.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/dns_record.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/email_incoming_message.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/email_log.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/errors.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/event_channel.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/event_delivery_attempt.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/event_record.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/event_subscription.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/event_target.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/exavault_api_request_log.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/expectation.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/expectation_evaluation.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/expectation_incident.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/external_event.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/file_action.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/file_comment.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/file_comment_reaction.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/file_migration.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/file_migration_log.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/file_upload_part.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/folder.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/form_field.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/form_field_set.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/ftp_action_log.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/gpg_key.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/group.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/group_user.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/history.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/history_export.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/history_export_result.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/holiday_calendar.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/holiday_region.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/image.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/inbound_s3_log.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/inbox_recipient.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/inbox_registration.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/inbox_upload.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/integration_centric_profile.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/invoice.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/invoice_line_item.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/ip_address.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/key_lifecycle_rule.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/lock.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/metadata_category.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/notification.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/outbound_connection_log.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/partner.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/partner_channel.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/partner_channel_template.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/partner_connection.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/partner_site.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/partner_site_request.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/payment.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/payment_line_item.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/pending_work_event.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/permission.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/preview.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/public_hosting_request_log.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/public_ip_address.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/public_key.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/remote_bandwidth_snapshot.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/remote_mount_backend.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/remote_server.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/remote_server_configuration_file.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/remote_server_credential.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/request.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/restore.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/schedule.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/scheduled_export.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/scim_log.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/secret.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/session.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/settings_change.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/sftp_action_log.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/sftp_host_key.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/share_group.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/share_group_member.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/siem_http_destination.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/siem_http_destination_event.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/site.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/site_subdomain_redirect.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/snapshot.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/sso_event.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/sso_strategy.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/status.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/style.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/sync.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/sync_log.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/sync_run.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/sync_run_live_transfer.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/usage_by_top_level_dir.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/usage_daily_snapshot.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/usage_snapshot.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/user.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/user_additional_email_recipient.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/user_cipher_use.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/user_lifecycle_rule.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/user_request.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/user_security_event.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/user_sftp_client_use.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/web_dav_action_log.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/webhook_test.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/workspace.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/zip_list_entry.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/path_comparison.json +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/path_util.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/files_sdk/util.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/setup.cfg +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_account_line_item.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_action.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_action_log.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_action_notification_export.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_action_notification_export_result.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_agent_node.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_agent_node_connection.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_agent_node_instance.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_agent_push_update.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_ai_assistant_personality.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_ai_task.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_api_errors.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_api_key.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_api_request_log.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_app.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_as2_incoming_message.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_as2_outgoing_message.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_as2_partner.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_as2_station.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_auto.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_automation.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_automation_authoring_schema.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_automation_execution_node.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_automation_log.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_automation_run.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_bandwidth_snapshot.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_behavior.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_bundle.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_bundle_action.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_bundle_download.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_bundle_notification.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_bundle_path.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_bundle_recipient.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_bundle_registration.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_chat_message.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_chat_session.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_child_site_management_policy.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_clickwrap.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_connection_adapter.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_custom_domain.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_decimal_contract.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_desktop_configuration_profile.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_direct_connection_info.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_dns_record.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_email_incoming_message.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_email_log.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_errors.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_event_channel.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_event_delivery_attempt.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_event_record.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_event_subscription.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_event_target.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_exavault_api_request_log.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_expectation.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_expectation_evaluation.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_expectation_incident.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_external_event.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_file.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_file_action.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_file_comment.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_file_comment_reaction.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_file_migration.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_file_migration_log.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_file_underscore_destinations.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_file_upload_part.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_folder.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_form_field.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_form_field_set.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_ftp_action_log.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_gpg_key.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_group.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_group_user.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_history.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_history_export.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_history_export_result.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_holiday_calendar.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_holiday_region.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_image.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_inbound_s3_log.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_inbox_recipient.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_inbox_registration.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_inbox_upload.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_integration_centric_profile.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_invoice.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_invoice_line_item.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_ip_address.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_key_lifecycle_rule.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_lock.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_metadata_category.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_notification.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_outbound_connection_log.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_partner.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_partner_channel.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_partner_channel_template.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_partner_connection.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_partner_site.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_partner_site_request.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_path_parameter_encoding.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_path_util.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_payment.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_payment_line_item.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_pending_work_event.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_permission.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_preview.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_public_hosting_request_log.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_public_ip_address.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_public_key.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_redirect_auth.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_remote_bandwidth_snapshot.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_remote_mount_backend.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_remote_server.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_remote_server_configuration_file.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_remote_server_credential.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_request.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_restore.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_schedule.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_scheduled_export.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_scim_log.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_secret.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_session.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_settings_change.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_sftp_action_log.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_sftp_host_key.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_share_group.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_share_group_member.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_siem_http_destination.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_siem_http_destination_event.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_site.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_site_subdomain_redirect.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_snapshot.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_sso_event.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_sso_strategy.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_status.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_style.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_sync.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_sync_log.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_sync_run.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_sync_run_live_transfer.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_transfer_privacy.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_usage_by_top_level_dir.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_usage_daily_snapshot.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_usage_snapshot.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_user.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_user_additional_email_recipient.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_user_cipher_use.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_user_lifecycle_rule.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_user_request.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_user_security_event.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_user_sftp_client_use.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_web_dav_action_log.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_webhook_test.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_workspace.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_workspace_id.py +0 -0
- {files_com-1.6.488 → files_com-1.6.490}/tests/test_zip_list_entry.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.6.490
|
|
@@ -226,6 +226,7 @@ tests/test_file_comment_reaction.py
|
|
|
226
226
|
tests/test_file_migration.py
|
|
227
227
|
tests/test_file_migration_log.py
|
|
228
228
|
tests/test_file_underscore_destinations.py
|
|
229
|
+
tests/test_file_upload.py
|
|
229
230
|
tests/test_file_upload_part.py
|
|
230
231
|
tests/test_folder.py
|
|
231
232
|
tests/test_form_field.py
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import json
|
|
2
|
+
import threading
|
|
3
|
+
import unittest
|
|
4
|
+
from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer
|
|
5
|
+
from unittest.mock import patch
|
|
6
|
+
|
|
7
|
+
import files_sdk
|
|
8
|
+
from files_sdk.error import APIError
|
|
9
|
+
|
|
10
|
+
PAYLOAD = b"\x00\xff\r\n" * 2048
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class UploadHandler(BaseHTTPRequestHandler):
|
|
14
|
+
def do_PUT(self):
|
|
15
|
+
self.server.uploads.append(self.rfile.read(int(self.headers["Content-Length"])))
|
|
16
|
+
self.send_response(200)
|
|
17
|
+
self.send_header("ETag", '"part-etag"')
|
|
18
|
+
self.send_header("Content-Length", "0")
|
|
19
|
+
self.end_headers()
|
|
20
|
+
|
|
21
|
+
def do_POST(self):
|
|
22
|
+
body = json.loads(self.rfile.read(int(self.headers["Content-Length"])))
|
|
23
|
+
if "/file_actions/begin_upload/" in self.path:
|
|
24
|
+
self.respond(200, [{
|
|
25
|
+
"upload_uri": "http://127.0.0.1:{}/upload".format(self.server.server_port),
|
|
26
|
+
"http_method": "PUT",
|
|
27
|
+
"partsize": 1024 * 1024,
|
|
28
|
+
"ref": "upload-ref",
|
|
29
|
+
"part_number": 1,
|
|
30
|
+
}])
|
|
31
|
+
elif self.server.fail_finalization:
|
|
32
|
+
self.respond(503, {"error": "Finalization failed", "type": "service-unavailable"})
|
|
33
|
+
else:
|
|
34
|
+
self.server.finalizations.append((body, self.headers["X-FilesAPI-Key"]))
|
|
35
|
+
self.respond(200, {"path": body["path"], "size": body["size"], "type": "file"})
|
|
36
|
+
|
|
37
|
+
def respond(self, status, data):
|
|
38
|
+
encoded = json.dumps(data).encode()
|
|
39
|
+
self.send_response(status)
|
|
40
|
+
self.send_header("Content-Type", "application/json")
|
|
41
|
+
self.send_header("Content-Length", str(len(encoded)))
|
|
42
|
+
self.end_headers()
|
|
43
|
+
self.wfile.write(encoded)
|
|
44
|
+
|
|
45
|
+
def log_message(self, *args):
|
|
46
|
+
pass
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
class TestFileUpload(unittest.TestCase):
|
|
50
|
+
def setUp(self):
|
|
51
|
+
self.server = ThreadingHTTPServer(("127.0.0.1", 0), UploadHandler)
|
|
52
|
+
self.server.uploads = []
|
|
53
|
+
self.server.finalizations = []
|
|
54
|
+
self.server.fail_finalization = False
|
|
55
|
+
self.thread = threading.Thread(target=self.server.serve_forever)
|
|
56
|
+
self.thread.start()
|
|
57
|
+
self.addCleanup(self.thread.join)
|
|
58
|
+
self.addCleanup(self.server.server_close)
|
|
59
|
+
self.addCleanup(self.server.shutdown)
|
|
60
|
+
base_url = "http://127.0.0.1:{}".format(self.server.server_port)
|
|
61
|
+
for name, value in {"base_url": base_url, "max_network_retries": 1}.items():
|
|
62
|
+
patcher = patch.object(files_sdk, name, value)
|
|
63
|
+
patcher.start()
|
|
64
|
+
self.addCleanup(patcher.stop)
|
|
65
|
+
|
|
66
|
+
def open_with_payload(self):
|
|
67
|
+
f = files_sdk.file.open("remote.bin", "wb", {"api_key": "optionsKey"})
|
|
68
|
+
f.write(PAYLOAD)
|
|
69
|
+
return f
|
|
70
|
+
|
|
71
|
+
def test_close_finalizes_once_and_releases_the_write_buffer(self):
|
|
72
|
+
f = self.open_with_payload()
|
|
73
|
+
write_buffer = f.io_obj
|
|
74
|
+
|
|
75
|
+
f.close()
|
|
76
|
+
f.close()
|
|
77
|
+
|
|
78
|
+
self.assertEqual(self.server.uploads, [PAYLOAD])
|
|
79
|
+
self.assertEqual(len(self.server.finalizations), 1)
|
|
80
|
+
finalization, api_key = self.server.finalizations[0]
|
|
81
|
+
self.assertEqual(finalization["action"], "end")
|
|
82
|
+
self.assertEqual(finalization["ref"], "upload-ref")
|
|
83
|
+
self.assertEqual(finalization["etags"], [{"etag": "part-etag", "part": 1}])
|
|
84
|
+
self.assertEqual(finalization["size"], len(PAYLOAD))
|
|
85
|
+
self.assertEqual(api_key, "optionsKey")
|
|
86
|
+
self.assertEqual(f.size, len(PAYLOAD))
|
|
87
|
+
self.assertTrue(f.closed)
|
|
88
|
+
self.assertTrue(write_buffer.closed)
|
|
89
|
+
self.assertTrue(f.io_obj.closed)
|
|
90
|
+
|
|
91
|
+
def test_failed_finalization_leaves_the_file_open_with_its_data(self):
|
|
92
|
+
self.server.fail_finalization = True
|
|
93
|
+
f = self.open_with_payload()
|
|
94
|
+
|
|
95
|
+
with self.assertRaises(APIError):
|
|
96
|
+
f.close()
|
|
97
|
+
|
|
98
|
+
self.assertFalse(f.closed)
|
|
99
|
+
self.assertEqual(f.io_obj.getvalue(), PAYLOAD)
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
if __name__ == "__main__":
|
|
103
|
+
unittest.main()
|
|
@@ -68,6 +68,24 @@ class TestStreamDownload(unittest.TestCase):
|
|
|
68
68
|
ApiClient().stream_download(self.url + "/incomplete-body", output)
|
|
69
69
|
self.assertEqual(output.getvalue(), b"\x00\xff" * 4096)
|
|
70
70
|
|
|
71
|
+
def test_file_close_releases_its_read_buffer(self):
|
|
72
|
+
with self.subTest("explicit close after a complete read"):
|
|
73
|
+
f = files_sdk.file.open("remote.bin", "rb")
|
|
74
|
+
f.download_uri = self.url + "/stream"
|
|
75
|
+
self.assertEqual(f.read(), b"\x00\xff" * 4096 * 3)
|
|
76
|
+
f.close()
|
|
77
|
+
self.assertTrue(f.closed)
|
|
78
|
+
self.assertTrue(f.io_obj.closed)
|
|
79
|
+
|
|
80
|
+
with self.subTest("context exit after an interrupted read"):
|
|
81
|
+
f = files_sdk.file.open("remote.bin", "rb")
|
|
82
|
+
f.download_uri = self.url + "/incomplete-body"
|
|
83
|
+
with self.assertRaises(files_sdk.error.APIConnectionError):
|
|
84
|
+
with f:
|
|
85
|
+
f.read()
|
|
86
|
+
self.assertTrue(f.closed)
|
|
87
|
+
self.assertTrue(f.io_obj.closed)
|
|
88
|
+
|
|
71
89
|
|
|
72
90
|
if __name__ == "__main__":
|
|
73
91
|
unittest.main()
|
files_com-1.6.488/_VERSION
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
1.6.488
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/action_notification_export_result.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{files_com-1.6.488 → files_com-1.6.490}/files_sdk/models/remote_server_configuration_file.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|