smartsheet-python-sdk 3.5.1__tar.gz → 3.5.2__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 changed (266) hide show
  1. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/.github/workflows/test-build.yaml +1 -2
  2. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/CHANGELOG.md +12 -0
  3. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/PKG-INFO +1 -1
  4. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/__init__.py +1 -0
  5. smartsheet_python_sdk-3.5.2/smartsheet/models/asset_shares_paginated_result.py +84 -0
  6. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/sharing.py +3 -3
  7. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/smartsheet.py +17 -0
  8. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/version.py +2 -2
  9. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet_python_sdk.egg-info/PKG-INFO +1 -1
  10. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet_python_sdk.egg-info/SOURCES.txt +4 -0
  11. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet_python_sdk.egg-info/top_level.txt +1 -0
  12. smartsheet_python_sdk-3.5.2/tests/__init__.py +0 -0
  13. smartsheet_python_sdk-3.5.2/tests/mock_api/__init__.py +0 -0
  14. smartsheet_python_sdk-3.5.2/tests/mock_api/mock_api_test_helper.py +73 -0
  15. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/mock_api/test_mock_api_automation_rules.py +1 -1
  16. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/mock_api/test_mock_api_columns.py +1 -1
  17. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/mock_api/test_mock_api_folders.py +2 -2
  18. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/mock_api/test_mock_api_rows.py +1 -1
  19. smartsheet_python_sdk-3.5.2/tests/mock_api/test_mock_api_sharing.py +508 -0
  20. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/mock_api/test_mock_api_sheets.py +1 -1
  21. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/mock_api/test_mock_api_sights.py +1 -1
  22. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/mock_api/test_mock_api_workspaces.py +2 -2
  23. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/mock_api/test_mock_change_agent.py +1 -2
  24. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/mock_api/test_mock_serialization.py +1 -1
  25. smartsheet_python_sdk-3.5.1/tests/mock_api/mock_api_test_helper.py +0 -30
  26. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/.gitchangelog.rc +0 -0
  27. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/.gitchangelog.tpl +0 -0
  28. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  29. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  30. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/.github/pull_request_template.md +0 -0
  31. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/.github/workflows/publish-distribution.yaml +0 -0
  32. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/.github/workflows/publish-documentation.yaml +0 -0
  33. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/.gitignore +0 -0
  34. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/.markdownlint.json +0 -0
  35. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/ADVANCED.md +0 -0
  36. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/CONTRIBUTING.md +0 -0
  37. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/LICENSE.md +0 -0
  38. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/Makefile +0 -0
  39. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/NOTICE +0 -0
  40. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/README.md +0 -0
  41. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/docs-source/Makefile +0 -0
  42. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/docs-source/conf.py +0 -0
  43. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/docs-source/index.rst +0 -0
  44. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/pylintrc +0 -0
  45. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/setup.cfg +0 -0
  46. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/setup.py +0 -0
  47. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/__init__.py +0 -0
  48. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/attachments.py +0 -0
  49. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/cells.py +0 -0
  50. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/contacts.py +0 -0
  51. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/discussions.py +0 -0
  52. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/events.py +0 -0
  53. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/exceptions.py +0 -0
  54. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/favorites.py +0 -0
  55. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/folders.py +0 -0
  56. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/groups.py +0 -0
  57. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/home.py +0 -0
  58. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/images.py +0 -0
  59. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/access_token.py +0 -0
  60. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/account.py +0 -0
  61. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/alternate_email.py +0 -0
  62. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/attachment.py +0 -0
  63. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/auto_number_format.py +0 -0
  64. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/automation_action.py +0 -0
  65. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/automation_rule.py +0 -0
  66. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/boolean_object_value.py +0 -0
  67. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/bulk_item_failure.py +0 -0
  68. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/bulk_item_result.py +0 -0
  69. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/cell.py +0 -0
  70. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/cell_data_item.py +0 -0
  71. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/cell_history.py +0 -0
  72. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/cell_link.py +0 -0
  73. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/cell_link_widget_content.py +0 -0
  74. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/chart_widget_content.py +0 -0
  75. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/column.py +0 -0
  76. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/comment.py +0 -0
  77. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/contact.py +0 -0
  78. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/contact_object_value.py +0 -0
  79. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/container_destination.py +0 -0
  80. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/copy_or_move_row_destination.py +0 -0
  81. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/copy_or_move_row_directive.py +0 -0
  82. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/copy_or_move_row_result.py +0 -0
  83. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/criteria.py +0 -0
  84. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/cross_sheet_reference.py +0 -0
  85. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/currency.py +0 -0
  86. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/date_object_value.py +0 -0
  87. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/datetime_object_value.py +0 -0
  88. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/discussion.py +0 -0
  89. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/downloaded_file.py +0 -0
  90. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/duration.py +0 -0
  91. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/email.py +0 -0
  92. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/__init__.py +0 -0
  93. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/access_level.py +0 -0
  94. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/asset_type.py +0 -0
  95. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/attachment_parent_type.py +0 -0
  96. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/attachment_sub_type.py +0 -0
  97. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/attachment_type.py +0 -0
  98. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/automation_action_frequency.py +0 -0
  99. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/automation_action_type.py +0 -0
  100. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/automation_rule_disabled_reason.py +0 -0
  101. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/cell_link_status.py +0 -0
  102. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/column_type.py +0 -0
  103. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/criteria_target.py +0 -0
  104. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/cross_sheet_reference_status.py +0 -0
  105. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/currency_code.py +0 -0
  106. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/day_descriptors.py +0 -0
  107. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/day_ordinal.py +0 -0
  108. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/event_action.py +0 -0
  109. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/event_obejct_type.py +0 -0
  110. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/event_source.py +0 -0
  111. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/global_template.py +0 -0
  112. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/operator.py +0 -0
  113. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/paper_type.py +0 -0
  114. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/predecessor_type.py +0 -0
  115. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/publish_accessible_by.py +0 -0
  116. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/schedule_type.py +0 -0
  117. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/seat_type.py +0 -0
  118. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/share_scope.py +0 -0
  119. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/share_type.py +0 -0
  120. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/sheet_email_format.py +0 -0
  121. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/sheet_filter_operator.py +0 -0
  122. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/sheet_filter_type.py +0 -0
  123. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/sort_direction.py +0 -0
  124. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/symbol.py +0 -0
  125. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/system_column_type.py +0 -0
  126. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/update_request_status.py +0 -0
  127. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/user_status.py +0 -0
  128. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/enums/widget_type.py +0 -0
  129. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/error.py +0 -0
  130. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/error_result.py +0 -0
  131. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/event.py +0 -0
  132. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/event_result.py +0 -0
  133. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/explicit_null.py +0 -0
  134. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/favorite.py +0 -0
  135. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/folder.py +0 -0
  136. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/font_family.py +0 -0
  137. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/format_details.py +0 -0
  138. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/format_tables.py +0 -0
  139. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/group.py +0 -0
  140. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/group_member.py +0 -0
  141. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/home.py +0 -0
  142. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/hyperlink.py +0 -0
  143. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/image.py +0 -0
  144. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/image_url.py +0 -0
  145. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/image_url_map.py +0 -0
  146. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/image_widget_content.py +0 -0
  147. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/index_result.py +0 -0
  148. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/json_object.py +0 -0
  149. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/multi_contact_object_value.py +0 -0
  150. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/multi_picklist_object_value.py +0 -0
  151. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/multi_row_email.py +0 -0
  152. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/number_object_value.py +0 -0
  153. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/o_auth_error.py +0 -0
  154. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/object_value.py +0 -0
  155. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/paginated_children_result.py +0 -0
  156. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/predecessor.py +0 -0
  157. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/predecessor_list.py +0 -0
  158. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/primitive_object_value.py +0 -0
  159. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/profile_image.py +0 -0
  160. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/project_settings.py +0 -0
  161. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/recipient.py +0 -0
  162. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/report.py +0 -0
  163. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/report_cell.py +0 -0
  164. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/report_column.py +0 -0
  165. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/report_publish.py +0 -0
  166. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/report_row.py +0 -0
  167. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/report_widget_content.py +0 -0
  168. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/result.py +0 -0
  169. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/row.py +0 -0
  170. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/row_email.py +0 -0
  171. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/row_mapping.py +0 -0
  172. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/schedule.py +0 -0
  173. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/scope.py +0 -0
  174. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/search_result.py +0 -0
  175. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/search_result_item.py +0 -0
  176. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/selection_range.py +0 -0
  177. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/sent_update_request.py +0 -0
  178. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/server_info.py +0 -0
  179. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/share.py +0 -0
  180. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/sheet.py +0 -0
  181. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/sheet_email.py +0 -0
  182. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/sheet_filter.py +0 -0
  183. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/sheet_filter_details.py +0 -0
  184. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/sheet_publish.py +0 -0
  185. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/sheet_summary.py +0 -0
  186. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/sheet_user_permissions.py +0 -0
  187. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/sheet_user_settings.py +0 -0
  188. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/shortcut_data_item.py +0 -0
  189. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/shortcut_widget_content.py +0 -0
  190. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/sight.py +0 -0
  191. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/sight_publish.py +0 -0
  192. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/sort_criterion.py +0 -0
  193. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/sort_specifier.py +0 -0
  194. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/source.py +0 -0
  195. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/string_object_value.py +0 -0
  196. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/summary_field.py +0 -0
  197. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/template.py +0 -0
  198. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/title_rich_text_widget_content.py +0 -0
  199. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/token_paginated_result.py +0 -0
  200. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/update_request.py +0 -0
  201. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/user.py +0 -0
  202. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/user_model.py +0 -0
  203. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/user_plan.py +0 -0
  204. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/user_profile.py +0 -0
  205. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/version.py +0 -0
  206. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/web_content_widget_content.py +0 -0
  207. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/webhook.py +0 -0
  208. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/webhook_secret.py +0 -0
  209. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/webhook_stats.py +0 -0
  210. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/webhook_subscope.py +0 -0
  211. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/widget.py +0 -0
  212. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/widget_content.py +0 -0
  213. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/widget_hyperlink.py +0 -0
  214. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/models/workspace.py +0 -0
  215. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/object_value.py +0 -0
  216. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/passthrough.py +0 -0
  217. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/reports.py +0 -0
  218. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/search.py +0 -0
  219. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/server.py +0 -0
  220. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/session.py +0 -0
  221. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/sheets.py +0 -0
  222. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/sights.py +0 -0
  223. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/templates.py +0 -0
  224. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/token.py +0 -0
  225. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/types.py +0 -0
  226. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/users.py +0 -0
  227. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/util.py +0 -0
  228. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/webhooks.py +0 -0
  229. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet/workspaces.py +0 -0
  230. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet_python_sdk.egg-info/dependency_links.txt +0 -0
  231. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/smartsheet_python_sdk.egg-info/requires.txt +0 -0
  232. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/README.md +0 -0
  233. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/conftest.py +0 -0
  234. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/fixtures/calling_all_curs.txt +0 -0
  235. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/fixtures/curly.jpg +0 -0
  236. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/fixtures/moe-curly.jpg +0 -0
  237. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/fixtures/quote.txt +0 -0
  238. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/fixtures/stooges_v1.jpg +0 -0
  239. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/fixtures/stooges_v2.jpg +0 -0
  240. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/test_attachments.py +0 -0
  241. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/test_columns.py +0 -0
  242. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/test_contacts.py +0 -0
  243. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/test_cross_sheet_references.py +0 -0
  244. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/test_discussions.py +0 -0
  245. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/test_events.py +0 -0
  246. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/test_favorites.py +0 -0
  247. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/test_folders.py +0 -0
  248. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/test_groups.py +0 -0
  249. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/test_home.py +0 -0
  250. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/test_model_attributes.py +0 -0
  251. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/test_multi_picklist.py +0 -0
  252. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/test_object_value.py +0 -0
  253. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/test_passthrough.py +0 -0
  254. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/test_regression.py +0 -0
  255. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/test_reports.py +0 -0
  256. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/test_rows.py +0 -0
  257. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/test_server_info.py +0 -0
  258. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/test_sharing.py +0 -0
  259. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/test_sheet_summary.py +0 -0
  260. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/test_sheets.py +0 -0
  261. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/test_templates.py +0 -0
  262. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/test_update_requests.py +0 -0
  263. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/test_users.py +0 -0
  264. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/test_webhooks.py +0 -0
  265. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/test_workspaces.py +0 -0
  266. {smartsheet_python_sdk-3.5.1 → smartsheet_python_sdk-3.5.2}/tests/integration/test_zsearch.py +0 -0
@@ -57,8 +57,7 @@ jobs:
57
57
  repository: 'smartsheet-sdk-tests'
58
58
  - name: Setup Mock API
59
59
  run: |
60
- smartsheet-sdk-tests/ci_scripts/install_wiremock.sh
61
- smartsheet-sdk-tests/ci_scripts/start_wiremock.sh
60
+ docker compose -f smartsheet-sdk-tests/docker-compose.yml up -d --wait
62
61
  - name: Run mock API tests
63
62
  run: |
64
63
  coverage run --source=smartsheet -m pytest tests/mock_api/
@@ -5,6 +5,18 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
6
6
  and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [3.5.2] - 2025-10-29
9
+
10
+ ### Fixed
11
+
12
+ - Fix list_asset_shares to return AssetSharesPaginatedResult.
13
+ - Fix update_asset_share to return Share
14
+
15
+ ## Added
16
+
17
+ - Add AssetSharesPaginatedResult for list asset shares.
18
+ - Add mock api tests for sharing endpoints.
19
+
8
20
  ## [3.5.1] - 2025-10-28
9
21
 
10
22
  ### Fixed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: smartsheet_python_sdk
3
- Version: 3.5.1
3
+ Version: 3.5.2
4
4
  Summary: Library that uses Python to connect to Smartsheet services (using API 2.0).
5
5
  Home-page: http://smartsheet-platform.github.io/api-docs/
6
6
  Author: Smartsheet
@@ -122,3 +122,4 @@ from .widget import Widget
122
122
  from .widget_content import WidgetContent
123
123
  from .workspace import Workspace
124
124
  from .user_plan import UserPlan
125
+ from .asset_shares_paginated_result import AssetSharesPaginatedResult
@@ -0,0 +1,84 @@
1
+ # pylint: disable=C0111,R0902,R0904,R0912,R0913,R0915,E1101
2
+ # Smartsheet Python SDK.
3
+ #
4
+ # Copyright 2018 Smartsheet.com, Inc.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License"): you may
7
+ # not use this file except in compliance with the License. You may obtain
8
+ # a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
14
+ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
15
+ # License for the specific language governing permissions and limitations
16
+ # under the License.
17
+
18
+ from __future__ import absolute_import
19
+
20
+ from typing import TypeVar, List
21
+ from ..types import String, json, TypedList, importlib
22
+ from ..util import deserialize, serialize
23
+ from . import Share
24
+
25
+ T = TypeVar('T')
26
+
27
+
28
+ class AssetSharesPaginatedResult:
29
+ """Smartsheet AssetSharesPaginatedResult data model with generic type support.
30
+ Use only for deserializing the response from GET /2.0/shares.
31
+ Created because GET /2.0/shares returns items in the response body instead of data.
32
+ As a result TokenPaginatedResult cannot be used.
33
+ """
34
+
35
+ def __init__(self, props=None, dynamic_data_type=None, base_obj=None):
36
+ """Initialize the TokenPaginatedResult model."""
37
+ self._base = None
38
+ if base_obj is not None:
39
+ self._base = base_obj
40
+
41
+ self._dynamic_data_type = None
42
+ if dynamic_data_type is not None:
43
+ self._dynamic_data_type = dynamic_data_type
44
+
45
+ self._items = TypedList(object)
46
+ self._last_key = String()
47
+
48
+ if props:
49
+ deserialize(self, props)
50
+
51
+ self.request_response = None
52
+ self.__initialized = True
53
+
54
+ @property
55
+ def items(self) -> List[Share]:
56
+ return self._items
57
+
58
+ @items.setter
59
+ def items(self, value):
60
+ class_ = getattr(
61
+ importlib.import_module("smartsheet.models"), self._dynamic_data_type
62
+ )
63
+ if isinstance(value, list):
64
+ self._items = [class_(x, self._base) for x in value]
65
+ else:
66
+ self._items = class_(value, self._base)
67
+
68
+
69
+ @property
70
+ def last_key(self):
71
+ return self._last_key.value
72
+
73
+ @last_key.setter
74
+ def last_key(self, value):
75
+ self._last_key.value = value
76
+
77
+ def to_dict(self):
78
+ return serialize(self)
79
+
80
+ def to_json(self):
81
+ return json.dumps(self.to_dict())
82
+
83
+ def __str__(self):
84
+ return self.to_json()
@@ -43,7 +43,7 @@ class Sharing:
43
43
  sharing_include (ShareScope): Scope of share to include in response
44
44
 
45
45
  Returns:
46
- IndexResult
46
+ AssetSharesPaginatedResult
47
47
  """
48
48
  _op = fresh_operation('list_asset_shares')
49
49
  _op['method'] = 'GET'
@@ -54,7 +54,7 @@ class Sharing:
54
54
  _op['query_params']['lastKey'] = last_key
55
55
  _op['query_params']['sharingInclude'] = sharing_include.name if sharing_include else None
56
56
 
57
- expected = ['IndexResult', 'Share']
57
+ expected = ['AssetSharesPaginatedResult', 'Share']
58
58
 
59
59
  prepped_request = self._base.prepare_request(_op)
60
60
  response = self._base.request(prepped_request, expected, _op)
@@ -132,7 +132,7 @@ class Sharing:
132
132
  _op['query_params']['assetId'] = asset_id
133
133
  _op['json'] = share_obj
134
134
 
135
- expected = ['Result', 'Share']
135
+ expected = 'Share'
136
136
 
137
137
  prepped_request = self._base.prepare_request(_op)
138
138
  response = self._base.request(prepped_request, expected, _op)
@@ -185,6 +185,8 @@ class Smartsheet:
185
185
  self._api_base = api_base
186
186
  self._assume_user = None
187
187
  self._test_scenario_name = None
188
+ self._wiremock_test_name = None
189
+ self._wiremock_request_id = None
188
190
  self._change_agent = None
189
191
 
190
192
  def assume_user(self, email=None):
@@ -227,6 +229,18 @@ class Smartsheet:
227
229
  """
228
230
  self._test_scenario_name = name
229
231
 
232
+ def with_wiremock_test_case(self, test_name: str, request_id: str):
233
+ """
234
+ Configure client with x-test-name and x-request-id headers.
235
+ Used for wiremock test cases.
236
+
237
+ Args:
238
+ test_name (str): The name of the wiremock test case.
239
+ request_id (str): The unique request ID for this test scenario.
240
+ """
241
+ self._wiremock_test_name = test_name
242
+ self._wiremock_request_id = request_id
243
+
230
244
  def with_change_agent(self, change_agent):
231
245
  """
232
246
  Request headers will contain the 'Smartsheet-Change-Agent' header value
@@ -437,6 +451,9 @@ class Smartsheet:
437
451
  del prepped_request.headers["Api-Scenario"]
438
452
  except KeyError:
439
453
  pass
454
+ if self._wiremock_test_name is not None and self._wiremock_request_id is not None:
455
+ prepped_request.headers["X-Test-Name"] = self._wiremock_test_name
456
+ prepped_request.headers["X-Request-ID"] = self._wiremock_request_id
440
457
 
441
458
  if self._change_agent is not None:
442
459
  prepped_request.headers.update(
@@ -1,4 +1,4 @@
1
1
  # file generated by setuptools_scm
2
2
  # don't change, don't track in version control
3
- __version__ = version = '3.5.1'
4
- __version_tuple__ = version_tuple = (3, 5, 1)
3
+ __version__ = version = '3.5.2'
4
+ __version_tuple__ = version_tuple = (3, 5, 2)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: smartsheet-python-sdk
3
- Version: 3.5.1
3
+ Version: 3.5.2
4
4
  Summary: Library that uses Python to connect to Smartsheet services (using API 2.0).
5
5
  Home-page: http://smartsheet-platform.github.io/api-docs/
6
6
  Author: Smartsheet
@@ -55,6 +55,7 @@ smartsheet/models/__init__.py
55
55
  smartsheet/models/access_token.py
56
56
  smartsheet/models/account.py
57
57
  smartsheet/models/alternate_email.py
58
+ smartsheet/models/asset_shares_paginated_result.py
58
59
  smartsheet/models/attachment.py
59
60
  smartsheet/models/auto_number_format.py
60
61
  smartsheet/models/automation_action.py
@@ -213,6 +214,7 @@ smartsheet_python_sdk.egg-info/SOURCES.txt
213
214
  smartsheet_python_sdk.egg-info/dependency_links.txt
214
215
  smartsheet_python_sdk.egg-info/requires.txt
215
216
  smartsheet_python_sdk.egg-info/top_level.txt
217
+ tests/__init__.py
216
218
  tests/integration/README.md
217
219
  tests/integration/conftest.py
218
220
  tests/integration/test_attachments.py
@@ -248,11 +250,13 @@ tests/integration/fixtures/moe-curly.jpg
248
250
  tests/integration/fixtures/quote.txt
249
251
  tests/integration/fixtures/stooges_v1.jpg
250
252
  tests/integration/fixtures/stooges_v2.jpg
253
+ tests/mock_api/__init__.py
251
254
  tests/mock_api/mock_api_test_helper.py
252
255
  tests/mock_api/test_mock_api_automation_rules.py
253
256
  tests/mock_api/test_mock_api_columns.py
254
257
  tests/mock_api/test_mock_api_folders.py
255
258
  tests/mock_api/test_mock_api_rows.py
259
+ tests/mock_api/test_mock_api_sharing.py
256
260
  tests/mock_api/test_mock_api_sheets.py
257
261
  tests/mock_api/test_mock_api_sights.py
258
262
  tests/mock_api/test_mock_api_workspaces.py
File without changes
File without changes
@@ -0,0 +1,73 @@
1
+ import os
2
+ import requests
3
+ import smartsheet
4
+ from smartsheet.exceptions import ApiError
5
+
6
+
7
+ def clean_api_error(test_func):
8
+ def wrapper(*args, **kwargs):
9
+ try:
10
+ test_func(*args, **kwargs)
11
+ except ApiError as error:
12
+ assert False, 'ApiError: ' + error.message
13
+
14
+ return wrapper
15
+
16
+
17
+ class MockApiTestHelper(object):
18
+ def setup_method(self, method):
19
+ self.client = smartsheet.Smartsheet(access_token='abc123', api_base='http://localhost:8082')
20
+ self.client.errors_as_exceptions()
21
+
22
+ def check_error_code(self, exception_info, expected_error_code):
23
+ actual_error_code = exception_info.value.error.result.error_code
24
+
25
+ if self.is_test_scenario_error_code(actual_error_code):
26
+ raise exception_info.value
27
+
28
+ assert actual_error_code == expected_error_code
29
+
30
+ def is_test_scenario_error_code(self, error_code):
31
+ return error_code == 9999
32
+
33
+
34
+ def get_mock_api_client(test_name: str, request_id: str) -> smartsheet.Smartsheet:
35
+ client = smartsheet.Smartsheet(access_token='abc123', api_base='http://localhost:8082/2.0')
36
+ client.with_wiremock_test_case(test_name, request_id)
37
+ return client
38
+
39
+
40
+ def get_wiremock_request(request_id: str) -> dict:
41
+ """
42
+ Fetch request details from WireMock admin API using the request ID.
43
+
44
+ Args:
45
+ request_id (str): The unique request ID to search for
46
+
47
+ Returns:
48
+ dict: The request details from WireMock, or None if not found
49
+
50
+ Raises:
51
+ requests.RequestException: If the HTTP request fails
52
+ ValueError: If not exactly 1 match
53
+ """
54
+ admin_url = "http://localhost:8082/__admin/requests/find"
55
+
56
+ # Search for requests with the specific request ID in headers
57
+ search_criteria = {
58
+ "headers": {
59
+ "X-Request-Id": {
60
+ "equalTo": request_id
61
+ }
62
+ }
63
+ }
64
+
65
+ response = requests.post(admin_url, json=search_criteria, timeout=30)
66
+ response.raise_for_status()
67
+
68
+ data = response.json()
69
+ requests_found = data.get("requests", [])
70
+
71
+ if len(requests_found) != 1:
72
+ raise ValueError(f'Found {len(requests_found)} requests, expected 1')
73
+ return requests_found[0]
@@ -2,7 +2,7 @@
2
2
 
3
3
  import smartsheet
4
4
  import pytest
5
- from mock_api_test_helper import MockApiTestHelper, clean_api_error
5
+ from tests.mock_api.mock_api_test_helper import MockApiTestHelper, clean_api_error
6
6
 
7
7
 
8
8
  class TestMockApiSheets(MockApiTestHelper):
@@ -1,7 +1,7 @@
1
1
  # pylint: disable=C0103,W0232
2
2
 
3
3
  from smartsheet.models import Column
4
- from mock_api_test_helper import MockApiTestHelper, clean_api_error
4
+ from tests.mock_api.mock_api_test_helper import MockApiTestHelper, clean_api_error
5
5
 
6
6
  class TestMockApiColumns(MockApiTestHelper):
7
7
  @clean_api_error
@@ -3,7 +3,7 @@
3
3
  import pytest
4
4
  from smartsheet.models import Folder, PaginatedChildrenResult, Sheet, Sight, Report
5
5
  from smartsheet.exceptions import ApiError
6
- from mock_api_test_helper import MockApiTestHelper, clean_api_error
6
+ from tests.mock_api.mock_api_test_helper import MockApiTestHelper, clean_api_error
7
7
 
8
8
 
9
9
  class TestMockApiFolders(MockApiTestHelper):
@@ -181,4 +181,4 @@ class TestMockApiFolders(MockApiTestHelper):
181
181
  assert sight.access_level == "EDITOR"
182
182
 
183
183
  # Verify the lastKey is returned in the response
184
- assert response.last_key == "xvmnw4mnx8v9wriot20574xvnjoqt4iuhnow490"
184
+ assert response.last_key == "xvmnw4mnx8v9wriot20574xvnjoqt4iuhnow490"
@@ -4,7 +4,7 @@ import pytest
4
4
  from smartsheet.models import Row, PredecessorList, Duration, ExplicitNull
5
5
  from smartsheet.exceptions import ApiError
6
6
 
7
- from mock_api_test_helper import MockApiTestHelper, clean_api_error
7
+ from tests.mock_api.mock_api_test_helper import MockApiTestHelper, clean_api_error
8
8
 
9
9
 
10
10
  class TestMockApiRows(MockApiTestHelper):