From 1c0bfe1ef59cad45882c09e37fcce74b5d9601ec Mon Sep 17 00:00:00 2001 From: denislavstanchev Date: Fri, 10 Jul 2026 17:06:06 +0300 Subject: [PATCH 1/3] Add missing case --- CHANGELOG.md | 4 ++++ smartsheet/models/paginated_children_result.py | 3 +++ 2 files changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 93698743..9c78b303 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## [x.x.x] - Unreleased +### Added + +- Add case for a template resource_type in append_data method in PaginatedChildrenResult model + ## [4.2.0] - 2026-07-09 ### Added diff --git a/smartsheet/models/paginated_children_result.py b/smartsheet/models/paginated_children_result.py index d6f68d74..14a46fd5 100644 --- a/smartsheet/models/paginated_children_result.py +++ b/smartsheet/models/paginated_children_result.py @@ -24,6 +24,7 @@ from .sheet import Sheet from .sight import Sight from .report import Report +from .template import Template # Type alias for children that can be any of these types ChildType = Union[Folder, Sheet, Sight, Report] @@ -64,6 +65,8 @@ def append_data(self, item): self._data.append(Sight(item, self._base)) elif resource_type == 'report': self._data.append(Report(item, self._base)) + elif resource_type == 'template': + self._data.append(Template(item, self._base)) else: # If no resource type or unknown type, append as-is self._data.append(item) From 5145b08328d0af358a75f7c0e4c4d5ef8007358e Mon Sep 17 00:00:00 2001 From: denislavstanchev Date: Mon, 13 Jul 2026 10:15:43 +0300 Subject: [PATCH 2/3] Add test cases for a template resource type --- tests/mock_api/test_mock_api_folders.py | 11 +++++++++-- tests/mock_api/test_mock_api_workspaces.py | 11 +++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/tests/mock_api/test_mock_api_folders.py b/tests/mock_api/test_mock_api_folders.py index 70c203de..8bfec5b6 100644 --- a/tests/mock_api/test_mock_api_folders.py +++ b/tests/mock_api/test_mock_api_folders.py @@ -1,7 +1,7 @@ # pylint: disable=C0103,W0232 import pytest -from smartsheet.models import Folder, PaginatedChildrenResult, Sheet, Sight, Report +from smartsheet.models import Folder, PaginatedChildrenResult, Sheet, Sight, Report, Template from smartsheet.exceptions import ApiError from tests.mock_api.mock_api_test_helper import MockApiTestHelper, clean_api_error @@ -44,7 +44,7 @@ def test_get_folder_children_no_params(self): response = self.client.Folders.get_folder_children(456) assert isinstance(response, PaginatedChildrenResult) - assert len(response.data) == 4 + assert len(response.data) == 5 # Verify first child (subfolder) subfolder = response.data[0] @@ -73,6 +73,13 @@ def test_get_folder_children_no_params(self): assert report.name == "Status Report" assert report.access_level == "VIEWER" + # Verify fifth child (template) + template = response.data[4] + assert isinstance(template, Template) + assert template.id == 990 + assert template.name == "Project Template" + assert template.access_level == "VIEWER" + @clean_api_error def test_get_folder_children_filter_sights_and_reports(self): self.client.as_test_scenario('Get Folder Children - Filter Sights and Reports') diff --git a/tests/mock_api/test_mock_api_workspaces.py b/tests/mock_api/test_mock_api_workspaces.py index 07e695cd..acdba9f5 100644 --- a/tests/mock_api/test_mock_api_workspaces.py +++ b/tests/mock_api/test_mock_api_workspaces.py @@ -1,7 +1,7 @@ # pylint: disable=C0103,W0232 import pytest -from smartsheet.models import Workspace, PaginatedChildrenResult, Folder, Sheet, Sight, Report +from smartsheet.models import Workspace, PaginatedChildrenResult, Folder, Sheet, Sight, Report, Template from smartsheet.exceptions import ApiError from tests.mock_api.mock_api_test_helper import MockApiTestHelper, clean_api_error @@ -49,7 +49,7 @@ def test_get_workspace_children_no_params(self): response = self.client.Workspaces.get_workspace_children(123) assert isinstance(response, PaginatedChildrenResult) - assert len(response.data) == 4 + assert len(response.data) == 5 # Verify first child (folder) - exact values from scenario folder = response.data[0] @@ -82,6 +82,13 @@ def test_get_workspace_children_no_params(self): assert report.permalink == "https://app.smartsheet.com/b/home?lx=*****************" assert report.access_level == "ADMIN" + # Verify fifth child (template) - exact values from scenario + template = response.data[4] + assert isinstance(template, Template) + assert template.id == 995 + assert template.name == "Budget Template" + assert template.access_level == "ADMIN" + @clean_api_error def test_get_workspace_children_filter_sheets_and_folders(self): From 23e2e7b3717b1ba75e7e7140fee2191162ea3d43 Mon Sep 17 00:00:00 2001 From: denislavstanchev Date: Mon, 13 Jul 2026 11:09:58 +0300 Subject: [PATCH 3/3] Add template type to ChildType union --- smartsheet/models/paginated_children_result.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/smartsheet/models/paginated_children_result.py b/smartsheet/models/paginated_children_result.py index 14a46fd5..9870f228 100644 --- a/smartsheet/models/paginated_children_result.py +++ b/smartsheet/models/paginated_children_result.py @@ -27,7 +27,7 @@ from .template import Template # Type alias for children that can be any of these types -ChildType = Union[Folder, Sheet, Sight, Report] +ChildType = Union[Folder, Sheet, Sight, Report, Template] class PaginatedChildrenResult(TokenPaginatedResult[ChildType]):