smartsheet-python-sdk 3.5.2__py2.py3-none-any.whl → 3.5.3__py2.py3-none-any.whl

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.
@@ -123,3 +123,4 @@ from .widget_content import WidgetContent
123
123
  from .workspace import Workspace
124
124
  from .user_plan import UserPlan
125
125
  from .asset_shares_paginated_result import AssetSharesPaginatedResult
126
+ from .asset_share import AssetShare
@@ -0,0 +1,138 @@
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 ..types import EnumeratedValue, String, json
21
+ from ..util import deserialize, serialize
22
+ from .enums import AccessLevel, ShareScope, ShareType
23
+
24
+
25
+ class AssetShare:
26
+
27
+ """Smartsheet AssetShare data model."""
28
+
29
+ def __init__(self, props=None, base_obj=None):
30
+ """Initialize the AssetShare model."""
31
+ self._base = None
32
+ if base_obj is not None:
33
+ self._base = base_obj
34
+
35
+ self._access_level = EnumeratedValue(AccessLevel)
36
+ self._email = String()
37
+ self._group_id = String()
38
+ self._id_ = String()
39
+ self._name = String()
40
+ self._scope = EnumeratedValue(ShareScope)
41
+ self._type_ = EnumeratedValue(ShareType)
42
+ self._user_id = String()
43
+
44
+ if props:
45
+ deserialize(self, props)
46
+
47
+ # requests package Response object
48
+ self.request_response = None
49
+ self.__initialized = True
50
+
51
+ def __getattr__(self, key):
52
+ if key == "id":
53
+ return self.id_
54
+ elif key == "type":
55
+ return self.type_
56
+ else:
57
+ raise AttributeError(key)
58
+
59
+ def __setattr__(self, key, value):
60
+ if key == "id":
61
+ self.id_ = value
62
+ elif key == "type":
63
+ self.type_ = value
64
+ else:
65
+ super().__setattr__(key, value)
66
+
67
+ @property
68
+ def access_level(self):
69
+ return self._access_level
70
+
71
+ @access_level.setter
72
+ def access_level(self, value):
73
+ self._access_level.set(value)
74
+
75
+ @property
76
+ def email(self):
77
+ return self._email.value
78
+
79
+ @email.setter
80
+ def email(self, value):
81
+ self._email.value = value
82
+
83
+ @property
84
+ def group_id(self):
85
+ return self._group_id.value
86
+
87
+ @group_id.setter
88
+ def group_id(self, value):
89
+ self._group_id.value = value
90
+
91
+ @property
92
+ def id_(self):
93
+ return self._id_.value
94
+
95
+ @id_.setter
96
+ def id_(self, value):
97
+ self._id_.value = value
98
+
99
+ @property
100
+ def name(self):
101
+ return self._name.value
102
+
103
+ @name.setter
104
+ def name(self, value):
105
+ self._name.value = value
106
+
107
+ @property
108
+ def scope(self):
109
+ return self._scope
110
+
111
+ @scope.setter
112
+ def scope(self, value):
113
+ self._scope.set(value)
114
+
115
+ @property
116
+ def type_(self):
117
+ return self._type_
118
+
119
+ @type_.setter
120
+ def type_(self, value):
121
+ self._type_.set(value)
122
+
123
+ @property
124
+ def user_id(self):
125
+ return self._user_id.value
126
+
127
+ @user_id.setter
128
+ def user_id(self, value):
129
+ self._user_id.value = value
130
+
131
+ def to_dict(self):
132
+ return serialize(self)
133
+
134
+ def to_json(self):
135
+ return json.dumps(self.to_dict())
136
+
137
+ def __str__(self):
138
+ return self.to_json()
@@ -20,7 +20,7 @@ from __future__ import absolute_import
20
20
  from typing import TypeVar, List
21
21
  from ..types import String, json, TypedList, importlib
22
22
  from ..util import deserialize, serialize
23
- from . import Share
23
+ from .asset_share import AssetShare
24
24
 
25
25
  T = TypeVar('T')
26
26
 
@@ -52,7 +52,7 @@ class AssetSharesPaginatedResult:
52
52
  self.__initialized = True
53
53
 
54
54
  @property
55
- def items(self) -> List[Share]:
55
+ def items(self) -> List[AssetShare]:
56
56
  return self._items
57
57
 
58
58
  @items.setter
smartsheet/sharing.py CHANGED
@@ -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 = ['AssetSharesPaginatedResult', 'Share']
57
+ expected = ['AssetSharesPaginatedResult', 'AssetShare']
58
58
 
59
59
  prepped_request = self._base.prepare_request(_op)
60
60
  response = self._base.request(prepped_request, expected, _op)
@@ -70,7 +70,7 @@ class Sharing:
70
70
  share_id (str): Share ID
71
71
 
72
72
  Returns:
73
- Share
73
+ AssetShare
74
74
  """
75
75
  _op = fresh_operation('get_asset_share')
76
76
  _op['method'] = 'GET'
@@ -78,7 +78,7 @@ class Sharing:
78
78
  _op['query_params']['assetType'] = asset_type
79
79
  _op['query_params']['assetId'] = asset_id
80
80
 
81
- expected = 'Share'
81
+ expected = 'AssetShare'
82
82
  prepped_request = self._base.prepare_request(_op)
83
83
  response = self._base.request(prepped_request, expected, _op)
84
84
 
@@ -106,7 +106,7 @@ class Sharing:
106
106
  _op['query_params']['sendEmail'] = send_email
107
107
  _op['json'] = share_obj
108
108
 
109
- expected = ['Result', 'Share']
109
+ expected = ['Result', 'AssetShare']
110
110
 
111
111
  prepped_request = self._base.prepare_request(_op)
112
112
  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 = 'Share'
135
+ expected = 'AssetShare'
136
136
 
137
137
  prepped_request = self._base.prepare_request(_op)
138
138
  response = self._base.request(prepped_request, expected, _op)
smartsheet/version.py CHANGED
@@ -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.2'
4
- __version_tuple__ = version_tuple = (3, 5, 2)
3
+ __version__ = version = '3.5.3'
4
+ __version_tuple__ = version_tuple = (3, 5, 3)
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
2
- Name: smartsheet-python-sdk
3
- Version: 3.5.2
1
+ Metadata-Version: 2.4
2
+ Name: smartsheet_python_sdk
3
+ Version: 3.5.3
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
@@ -27,15 +27,27 @@ Requires-Dist: requests-toolbelt
27
27
  Requires-Dist: six>=1.9
28
28
  Requires-Dist: certifi
29
29
  Requires-Dist: python-dateutil
30
+ Provides-Extra: test
31
+ Requires-Dist: coverage; extra == "test"
32
+ Requires-Dist: coveralls; extra == "test"
33
+ Requires-Dist: pytest; extra == "test"
30
34
  Provides-Extra: develop
31
35
  Requires-Dist: coverage; extra == "develop"
32
36
  Requires-Dist: coveralls[yaml]; extra == "develop"
33
37
  Requires-Dist: pytest; extra == "develop"
34
38
  Requires-Dist: pytest-instafail; extra == "develop"
35
- Provides-Extra: test
36
- Requires-Dist: coverage; extra == "test"
37
- Requires-Dist: coveralls; extra == "test"
38
- Requires-Dist: pytest; extra == "test"
39
+ Dynamic: author
40
+ Dynamic: author-email
41
+ Dynamic: classifier
42
+ Dynamic: description
43
+ Dynamic: description-content-type
44
+ Dynamic: home-page
45
+ Dynamic: keywords
46
+ Dynamic: license
47
+ Dynamic: license-file
48
+ Dynamic: provides-extra
49
+ Dynamic: requires-dist
50
+ Dynamic: summary
39
51
 
40
52
  # Smartsheet Python SDK
41
53
 
@@ -16,7 +16,7 @@ smartsheet/reports.py,sha256=0B5bdQwVJHwu-V04aMSJ-Y7HaILK4rgjjMtn0--kcig,12835
16
16
  smartsheet/search.py,sha256=ffy1dkVl3GtuYgCxvuR-vwahOBWIehGv_zwzLoJMimA,3394
17
17
  smartsheet/server.py,sha256=9wySsa_y_G-VO88tEHGHp919zRVFS0kCFIhiM6crWEU,1429
18
18
  smartsheet/session.py,sha256=TQ3IgVZ64r7Dszwo8rMISFezWxuwFYshhW9QhzoA428,2125
19
- smartsheet/sharing.py,sha256=vonbDFD5nXrhcRTjTdBmZVZs4TB1BWVk2eOJslydmUE,5857
19
+ smartsheet/sharing.py,sha256=pYQdYuZy5ZJdaPhh1monaYfyQQOOcTi_lQuHM0xzsnQ,5882
20
20
  smartsheet/sheets.py,sha256=2SUhanCsRFKCsbN-oAIRMsuYnk1aSFlXKzfZhxMo7d0,70603
21
21
  smartsheet/sights.py,sha256=IZgy8CJZBJ-pQo6vNwkDSBuoLCv5RAW39kNUMMNJ-oc,11569
22
22
  smartsheet/smartsheet.py,sha256=bx5uAH6sH5SXBui2XILuNsFo06lnc8Z8_eo1Uzzd6as,24454
@@ -25,14 +25,15 @@ smartsheet/token.py,sha256=5uz-IG5adx_zr2-uepH-W8ATv0dq9aZNjYLeZNwldqI,4703
25
25
  smartsheet/types.py,sha256=aIdRJ89jwclmiZ4RH3hnZHJTFWFxgNKW3d8fghm21eM,9126
26
26
  smartsheet/users.py,sha256=1KnqKJIzJEPMNy26BQY1b9jb3dItbzglrljV1MGD5ic,15887
27
27
  smartsheet/util.py,sha256=12Y6eluecB8k4Ns-at81AEM18ND2TCKa9bF4BlNRrKM,5633
28
- smartsheet/version.py,sha256=OQ0f_DFwVp2oC6nqaYeOMvAmplmRtX58iNhel24HEag,160
28
+ smartsheet/version.py,sha256=kI0cwdlkd69aNaT5To9ivKCuIlktWWkXcAuaC14mFfo,160
29
29
  smartsheet/webhooks.py,sha256=7F7g4Ks0GyS3QxsNWm1SFtrOr00jBisCjj7-hcToHM8,4637
30
30
  smartsheet/workspaces.py,sha256=r81xh3HfYsX--ll5pQ-h7kSSJELokYV-bSjuD0WloeU,22651
31
- smartsheet/models/__init__.py,sha256=lH951xll0kO3GA6CrgW4UgMOcXu2x7BjvZBFQfpgqKY,4824
31
+ smartsheet/models/__init__.py,sha256=wJter68K1D2T3Noq4r7SooPhahtdkJBKIrrUwJxymNQ,4860
32
32
  smartsheet/models/access_token.py,sha256=sKHL5cFRWPTjymX06ZIXaCDp8ZJQEVpXN8mns1DAvGM,2564
33
33
  smartsheet/models/account.py,sha256=nLg_5O4Vnc7aNf9p1kIcsgdAm23IC2H7cKkxjLxwS9U,1941
34
34
  smartsheet/models/alternate_email.py,sha256=n8zqWkY-uzSw_CVKBvYUc6pGSR0v4yTx8S5PaIiX_AU,2263
35
- smartsheet/models/asset_shares_paginated_result.py,sha256=kSee44-T_7hn-hz7kgKAVAa6vFs06IhFQ7AIpohe7WE,2531
35
+ smartsheet/models/asset_share.py,sha256=e3xud8bkK6ep8JljCp6v7AmIKpqZIyBPodEOWbE-WwA,3398
36
+ smartsheet/models/asset_shares_paginated_result.py,sha256=lvFOAjclocin_8AQENflaX9W-cRlCmUqaAVTpb2v7Hc,2552
36
37
  smartsheet/models/attachment.py,sha256=5DgnZ4fj19rtIgN3INqlP0zYh8JNa0DRleeAS52tQ2o,4684
37
38
  smartsheet/models/auto_number_format.py,sha256=LRNIkasbspWKJFg0hwMvhSe4HmuuNRrvH_jerCbKooM,2091
38
39
  smartsheet/models/automation_action.py,sha256=_1cb_ubhR4Xx56UNGi3dLXdfoBkA7oyjDWu2wA98p-Q,4526
@@ -186,6 +187,8 @@ smartsheet/models/enums/system_column_type.py,sha256=UfhNUBGD_0K1Pas7fujGEuax55O
186
187
  smartsheet/models/enums/update_request_status.py,sha256=xYF84x1dTFhJMYVi1q3G1T9u1IGN3szlR1jj5HHC0hE,777
187
188
  smartsheet/models/enums/user_status.py,sha256=SB7qRcA0dhdRimsOKHCGF3CB6fL0XuifxQEWZGNNS8Q,766
188
189
  smartsheet/models/enums/widget_type.py,sha256=VfVq59fLZsT4ks_ZBrtv52u2Cl60iAdlA6mGD_elz-k,1072
190
+ smartsheet_python_sdk-3.5.3.dist-info/licenses/LICENSE.md,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
191
+ smartsheet_python_sdk-3.5.3.dist-info/licenses/NOTICE,sha256=mXr2ryVjnCjykeW0J79kFfVXQG_Z9SV4BV_QPNENW1U,420
189
192
  tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
190
193
  tests/integration/README.md,sha256=URfm5x5IdE---oMkO3vMePPJ8ZdESJTvPzMdjzv6TnY,1352
191
194
  tests/integration/conftest.py,sha256=8YxuffY8hOZ1NtU7mw95-H6i5wcChxJIketxIO6OrD0,5275
@@ -228,15 +231,13 @@ tests/mock_api/test_mock_api_automation_rules.py,sha256=tEsSkFRF9frJciXD7y_A3T1Q
228
231
  tests/mock_api/test_mock_api_columns.py,sha256=9-jvgluH5hWyNEKgfPIB5nPtW40KjD6Q7GUr-EzcMis,1490
229
232
  tests/mock_api/test_mock_api_folders.py,sha256=MUDeVv0rn5vAs6GDtrKfIaap-jBO-syoy5MBb2vYJ0E,6755
230
233
  tests/mock_api/test_mock_api_rows.py,sha256=2xNqQsvqnk4T_dsWrmu1BPVhNvTlb_gffClaz_LIbpg,20972
231
- tests/mock_api/test_mock_api_sharing.py,sha256=6psgcUXvc2nCq3OS1M9-pQ0YJZmhVDs2pCYAmvgzF_U,15085
234
+ tests/mock_api/test_mock_api_sharing.py,sha256=Ral8u2_FwRhj5VNF1kpNMFJhK4RxYVwGAkio-dQzGxI,15389
232
235
  tests/mock_api/test_mock_api_sheets.py,sha256=61mhb0iUnR8j4_5XTrfI9aQHOGGX3RTc3tGsn8G0V2k,1225
233
236
  tests/mock_api/test_mock_api_sights.py,sha256=UazPkjGu2UnT_dRz189v1DMhMBDeTRKtWxux6aYao2k,2203
234
237
  tests/mock_api/test_mock_api_workspaces.py,sha256=8QzRrkRoenCCD5tB5crmpGzXNmSP9kLjEUU046DJ1AE,9419
235
238
  tests/mock_api/test_mock_change_agent.py,sha256=WDd6MKERhqGQJ3QrTQK5ylXMhZ65o5vnhscBlisFjoM,757
236
239
  tests/mock_api/test_mock_serialization.py,sha256=0veKtirhYve8BZL8M3yPuREpw-a8TzYK7tH7aLD7LqQ,18174
237
- smartsheet_python_sdk-3.5.2.dist-info/LICENSE.md,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
238
- smartsheet_python_sdk-3.5.2.dist-info/METADATA,sha256=tbNMz9R8y4hJo70xPGAQv2bWvOtLz_WojhK0Wv_A-hs,4734
239
- smartsheet_python_sdk-3.5.2.dist-info/NOTICE,sha256=mXr2ryVjnCjykeW0J79kFfVXQG_Z9SV4BV_QPNENW1U,420
240
- smartsheet_python_sdk-3.5.2.dist-info/WHEEL,sha256=Kh9pAotZVRFj97E15yTA4iADqXdQfIVTHcNaZTjxeGM,110
241
- smartsheet_python_sdk-3.5.2.dist-info/top_level.txt,sha256=ACM1Ryc7rQRwrJIuN7H4aEMO-wUGjiYQshvRPoiOYT4,17
242
- smartsheet_python_sdk-3.5.2.dist-info/RECORD,,
240
+ smartsheet_python_sdk-3.5.3.dist-info/METADATA,sha256=qL8NsHj-aPqRXVPhQtUYzWGThg8vLvk1CQgYJVM_qcU,4987
241
+ smartsheet_python_sdk-3.5.3.dist-info/WHEEL,sha256=AeO2BvogYWm3eGaHCvhzmUYt8ia7KfURiHzO_1atlys,109
242
+ smartsheet_python_sdk-3.5.3.dist-info/top_level.txt,sha256=ACM1Ryc7rQRwrJIuN7H4aEMO-wUGjiYQshvRPoiOYT4,17
243
+ smartsheet_python_sdk-3.5.3.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.45.1)
2
+ Generator: setuptools (79.0.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py2-none-any
5
5
  Tag: py3-none-any
@@ -4,7 +4,7 @@ from urllib.parse import urlparse, parse_qs
4
4
 
5
5
  import pytest
6
6
  from smartsheet.models.enums import AssetType, AccessLevel, ShareScope, ShareType
7
- from smartsheet.models import Share, AssetSharesPaginatedResult, Error
7
+ from smartsheet.models import AssetShare, AssetSharesPaginatedResult, Error
8
8
  from tests.mock_api.mock_api_test_helper import (
9
9
  get_mock_api_client,
10
10
  get_wiremock_request,
@@ -16,8 +16,8 @@ TEST_ASSET_ID = "AAAMCmYGFOeE"
16
16
  TEST_SHARE_ID = "AAABbbbCccDdd"
17
17
  TEST_ASSET_TYPE = AssetType.SHEET
18
18
  TEST_EMAIL = "test.email@smartsheet.com"
19
- TEST_USER_ID = 9876543210
20
- TEST_GROUP_ID = 1234567890
19
+ TEST_USER_ID = "9876543210"
20
+ TEST_GROUP_ID = "1234567890"
21
21
  TEST_NAME = "Example Name"
22
22
  TEST_SHARE_TYPE = ShareType.USER
23
23
  TEST_ACCESS_LEVEL = AccessLevel.ADMIN
@@ -25,11 +25,14 @@ TEST_SCOPE = ShareScope.ITEM
25
25
  TEST_MAX_ITEMS = 100
26
26
  TEST_LAST_KEY = "test_last_key"
27
27
  TEST_LAST_KEY_RESPONSE = "abcDefGhIjKlMnOpQrStUvWxYz"
28
+ TEST_SUCCESS_MESSAGE = "SUCCESS"
29
+ TEST_SUCCESS_RESULT_CODE = 0
30
+ TEST_SEND_EMAIL = False
28
31
 
29
32
 
30
33
  def assert_share_properties(share, include_name=True):
31
34
  """Helper function to assert common share properties."""
32
- assert isinstance(share, Share)
35
+ assert isinstance(share, AssetShare)
33
36
  assert share.id == TEST_ASSET_ID
34
37
  assert share.email == TEST_EMAIL
35
38
  assert share.user_id == TEST_USER_ID
@@ -43,10 +46,10 @@ def assert_share_properties(share, include_name=True):
43
46
  assert share.scope == TEST_SCOPE
44
47
 
45
48
 
46
- @pytest.fixture
47
- def test_share():
48
- """Pytest fixture to create a test Share object."""
49
- return Share({"email": TEST_EMAIL, "access_level": AccessLevel.VIEWER})
49
+ @pytest.fixture(name="test_share")
50
+ def test_share_fixture():
51
+ """Pytest fixture to create a test AssetShare object."""
52
+ return AssetShare({"email": TEST_EMAIL, "access_level": TEST_ACCESS_LEVEL})
50
53
 
51
54
 
52
55
  def test_list_asset_shares_generated_url_is_correct():
@@ -56,22 +59,22 @@ def test_list_asset_shares_generated_url_is_correct():
56
59
  )
57
60
 
58
61
  client.Sharing.list_asset_shares(
59
- asset_type=AssetType.SHEET,
60
- asset_id="AAAMCmYGFOeE",
61
- max_items=100,
62
- last_key="test_last_key",
63
- sharing_include=ShareScope.ITEM,
62
+ asset_type=TEST_ASSET_TYPE,
63
+ asset_id=TEST_ASSET_ID,
64
+ max_items=TEST_MAX_ITEMS,
65
+ last_key=TEST_LAST_KEY,
66
+ sharing_include=TEST_SCOPE,
64
67
  )
65
68
 
66
69
  wiremock_request = get_wiremock_request(request_id)
67
70
  url = urlparse(wiremock_request["absoluteUrl"])
68
71
  query = parse_qs(url.query)
69
72
  assert query == {
70
- "assetType": ["sheet"],
71
- "assetId": ["AAAMCmYGFOeE"],
72
- "maxItems": ["100"],
73
- "lastKey": ["test_last_key"],
74
- "sharingInclude": ["ITEM"],
73
+ "assetType": [TEST_ASSET_TYPE.value],
74
+ "assetId": [TEST_ASSET_ID],
75
+ "maxItems": [str(TEST_MAX_ITEMS)],
76
+ "lastKey": [TEST_LAST_KEY],
77
+ "sharingInclude": [TEST_SCOPE.name],
75
78
  }
76
79
 
77
80
 
@@ -82,25 +85,25 @@ def test_list_asset_shares_all_response_properties():
82
85
  )
83
86
 
84
87
  response = client.Sharing.list_asset_shares(
85
- asset_type=AssetType.SHEET, asset_id="AAAMCmYGFOeE"
88
+ asset_type=TEST_ASSET_TYPE, asset_id=TEST_ASSET_ID
86
89
  )
87
90
 
88
91
  assert isinstance(response, AssetSharesPaginatedResult)
89
92
 
90
- assert response.last_key == "abcDefGhIjKlMnOpQrStUvWxYz"
93
+ assert response.last_key == TEST_LAST_KEY_RESPONSE
91
94
  assert len(response.items) == 1
92
95
 
93
96
  share = response.items[0]
94
- assert isinstance(share, Share)
97
+ assert isinstance(share, AssetShare)
95
98
 
96
- assert share.id == "AAAMCmYGFOeE"
97
- assert share.email == "test.email@smartsheet.com"
98
- assert share.user_id == 9876543210
99
- assert share.group_id == 1234567890
100
- assert share.name == "Example Name"
101
- assert share.type == ShareType.USER
102
- assert share.access_level == AccessLevel.ADMIN
103
- assert share.scope == ShareScope.ITEM
99
+ assert share.id == TEST_ASSET_ID
100
+ assert share.email == TEST_EMAIL
101
+ assert share.user_id == TEST_USER_ID
102
+ assert share.group_id == TEST_GROUP_ID
103
+ assert share.name == TEST_NAME
104
+ assert share.type == TEST_SHARE_TYPE
105
+ assert share.access_level == TEST_ACCESS_LEVEL
106
+ assert share.scope == TEST_SCOPE
104
107
 
105
108
 
106
109
  def test_list_asset_shares_required_response_properties():
@@ -110,7 +113,7 @@ def test_list_asset_shares_required_response_properties():
110
113
  )
111
114
 
112
115
  response = client.Sharing.list_asset_shares(
113
- asset_type=AssetType.SHEET, asset_id="AAAMCmYGFOeE"
116
+ asset_type=TEST_ASSET_TYPE, asset_id=TEST_ASSET_ID
114
117
  )
115
118
 
116
119
  assert isinstance(response, AssetSharesPaginatedResult)
@@ -119,16 +122,16 @@ def test_list_asset_shares_required_response_properties():
119
122
  assert len(response.items) == 1
120
123
 
121
124
  share = response.items[0]
122
- assert isinstance(share, Share)
125
+ assert isinstance(share, AssetShare)
123
126
 
124
- assert share.id == "AAAMCmYGFOeE"
125
- assert share.email == "test.email@smartsheet.com"
126
- assert share.user_id == 9876543210
127
- assert share.group_id == 1234567890
127
+ assert share.id == TEST_ASSET_ID
128
+ assert share.email == TEST_EMAIL
129
+ assert share.user_id == TEST_USER_ID
130
+ assert share.group_id == TEST_GROUP_ID
128
131
  assert share.name is None
129
- assert share.type == ShareType.USER
130
- assert share.access_level == AccessLevel.ADMIN
131
- assert share.scope == ShareScope.ITEM
132
+ assert share.type == TEST_SHARE_TYPE
133
+ assert share.access_level == TEST_ACCESS_LEVEL
134
+ assert share.scope == TEST_SCOPE
132
135
 
133
136
  def test_list_asset_shares_error_4xx():
134
137
  request_id = uuid.uuid4().hex
@@ -137,11 +140,11 @@ def test_list_asset_shares_error_4xx():
137
140
  )
138
141
 
139
142
  response = client.Sharing.list_asset_shares(
140
- asset_type=AssetType.SHEET,
141
- asset_id="AAAMCmYGFOeE",
142
- max_items=100,
143
- last_key="test_last_key",
144
- sharing_include=ShareScope.ITEM,
143
+ asset_type=TEST_ASSET_TYPE,
144
+ asset_id=TEST_ASSET_ID,
145
+ max_items=TEST_MAX_ITEMS,
146
+ last_key=TEST_LAST_KEY,
147
+ sharing_include=TEST_SCOPE,
145
148
  )
146
149
 
147
150
  assert isinstance(response, Error)
@@ -153,11 +156,11 @@ def test_list_asset_shares_error_5xx():
153
156
  )
154
157
 
155
158
  response = client.Sharing.list_asset_shares(
156
- asset_type=AssetType.SHEET,
157
- asset_id="AAAMCmYGFOeE",
158
- max_items=100,
159
- last_key="test_last_key",
160
- sharing_include=ShareScope.ITEM,
159
+ asset_type=TEST_ASSET_TYPE,
160
+ asset_id=TEST_ASSET_ID,
161
+ max_items=TEST_MAX_ITEMS,
162
+ last_key=TEST_LAST_KEY,
163
+ sharing_include=TEST_SCOPE,
161
164
  )
162
165
 
163
166
  assert isinstance(response, Error)
@@ -177,7 +180,7 @@ def test_get_asset_share_generated_url_is_correct():
177
180
  assert url.path == f'/2.0/shares/{TEST_SHARE_ID}'
178
181
  query = parse_qs(url.query)
179
182
  assert query == {
180
- "assetType": ["sheet"],
183
+ "assetType": [TEST_ASSET_TYPE.value],
181
184
  "assetId": [TEST_ASSET_ID],
182
185
  }
183
186
 
@@ -248,9 +251,9 @@ def test_share_asset_generated_url_is_correct(test_share):
248
251
  assert url.path == '/2.0/shares'
249
252
  query = parse_qs(url.query)
250
253
  assert query == {
251
- "assetType": ["sheet"],
254
+ "assetType": [TEST_ASSET_TYPE.value],
252
255
  "assetId": [TEST_ASSET_ID],
253
- "sendEmail": ["False"]
256
+ "sendEmail": [str(TEST_SEND_EMAIL)]
254
257
  }
255
258
 
256
259
  def test_share_asset_all_response_properties(test_share):
@@ -275,7 +278,7 @@ def test_share_asset_all_response_properties(test_share):
275
278
 
276
279
  wiremock_request = get_wiremock_request(request_id)
277
280
  body = json.loads(wiremock_request["body"])
278
- assert body == {"accessLevel": "VIEWER", "email": TEST_EMAIL}
281
+ assert body == {"accessLevel": TEST_ACCESS_LEVEL.name, "email": TEST_EMAIL}
279
282
 
280
283
 
281
284
  def test_share_multiple_assets_all_response_properties(test_share):
@@ -302,7 +305,7 @@ def test_share_multiple_assets_all_response_properties(test_share):
302
305
 
303
306
  wiremock_request = get_wiremock_request(request_id)
304
307
  body = json.loads(wiremock_request["body"])
305
- assert body == [{"accessLevel": "VIEWER", "email": TEST_EMAIL}]
308
+ assert body == [{"accessLevel": TEST_ACCESS_LEVEL.name, "email": TEST_EMAIL}]
306
309
 
307
310
 
308
311
 
@@ -362,7 +365,7 @@ def test_update_asset_share_generated_url_is_correct():
362
365
  "/sharing/update-asset-share/all-response-body-properties", request_id
363
366
  )
364
367
 
365
- share = Share({"access_level": AccessLevel.EDITOR})
368
+ share = AssetShare({"access_level": TEST_ACCESS_LEVEL})
366
369
 
367
370
  client.Sharing.update_asset_share(
368
371
  share_obj=share,
@@ -376,7 +379,7 @@ def test_update_asset_share_generated_url_is_correct():
376
379
  assert url.path == f'/2.0/shares/{TEST_SHARE_ID}'
377
380
  query = parse_qs(url.query)
378
381
  assert query == {
379
- "assetType": ["sheet"],
382
+ "assetType": [TEST_ASSET_TYPE.value],
380
383
  "assetId": [TEST_ASSET_ID],
381
384
  }
382
385
 
@@ -386,7 +389,7 @@ def test_update_asset_share_all_response_properties():
386
389
  "/sharing/update-asset-share/all-response-body-properties", request_id
387
390
  )
388
391
 
389
- share = Share({"access_level": AccessLevel.EDITOR})
392
+ share = AssetShare({"access_level": TEST_ACCESS_LEVEL})
390
393
 
391
394
  response = client.Sharing.update_asset_share(
392
395
  share_obj=share,
@@ -395,7 +398,7 @@ def test_update_asset_share_all_response_properties():
395
398
  share_id=TEST_SHARE_ID,
396
399
  )
397
400
 
398
- # Update returns the Share object directly, not wrapped in result
401
+ # Update returns the AssetShare object directly, not wrapped in result
399
402
  assert_share_properties(response, include_name=True)
400
403
 
401
404
 
@@ -405,7 +408,7 @@ def test_update_asset_share_required_response_properties():
405
408
  "/sharing/update-asset-share/required-response-body-properties", request_id
406
409
  )
407
410
 
408
- share = Share({"access_level": TEST_ACCESS_LEVEL})
411
+ share = AssetShare({"access_level": TEST_ACCESS_LEVEL})
409
412
 
410
413
  response = client.Sharing.update_asset_share(
411
414
  share_obj=share,
@@ -414,7 +417,7 @@ def test_update_asset_share_required_response_properties():
414
417
  share_id=TEST_SHARE_ID,
415
418
  )
416
419
 
417
- # Update returns the Share object directly, not wrapped in result
420
+ # Update returns the AssetShare object directly, not wrapped in result
418
421
  assert_share_properties(response, include_name=False)
419
422
 
420
423
  def test_update_asset_share_error_4xx():
@@ -423,7 +426,7 @@ def test_update_asset_share_error_4xx():
423
426
  "/errors/400-response", request_id
424
427
  )
425
428
 
426
- share = Share({"access_level": AccessLevel.EDITOR})
429
+ share = AssetShare({"access_level": TEST_ACCESS_LEVEL})
427
430
 
428
431
  response = client.Sharing.update_asset_share(
429
432
  share_obj=share,
@@ -440,7 +443,7 @@ def test_update_asset_share_error_5xx():
440
443
  "/errors/500-response", request_id
441
444
  )
442
445
 
443
- share = Share({"access_level": AccessLevel.EDITOR})
446
+ share = AssetShare({"access_level": TEST_ACCESS_LEVEL})
444
447
 
445
448
  response = client.Sharing.update_asset_share(
446
449
  share_obj=share,
@@ -466,7 +469,7 @@ def test_delete_asset_share_generated_url_is_correct():
466
469
  assert url.path == f'/2.0/shares/{TEST_SHARE_ID}'
467
470
  query = parse_qs(url.query)
468
471
  assert query == {
469
- "assetType": ["sheet"],
472
+ "assetType": [TEST_ASSET_TYPE.value],
470
473
  "assetId": [TEST_ASSET_ID],
471
474
  }
472
475
 
@@ -480,8 +483,8 @@ def test_delete_asset_share_all_response_properties():
480
483
  asset_type=TEST_ASSET_TYPE, asset_id=TEST_ASSET_ID, share_id=TEST_SHARE_ID
481
484
  )
482
485
 
483
- assert response.message == "SUCCESS"
484
- assert response.result_code == 0
486
+ assert response.message == TEST_SUCCESS_MESSAGE
487
+ assert response.result_code == TEST_SUCCESS_RESULT_CODE
485
488
 
486
489
  def test_delete_asset_share_error_4xx():
487
490
  request_id = uuid.uuid4().hex