Skip to content

Commit fe107bd

Browse files
Simplify notification configuration iterator and remove page_number option
1 parent 6c746ba commit fe107bd

3 files changed

Lines changed: 8 additions & 20 deletions

File tree

src/pytfe/models/notification_configuration.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -188,26 +188,21 @@ class NotificationConfigurationListOptions:
188188
"""Represents the options for listing notification configurations."""
189189

190190
# Type annotations for instance attributes
191-
page_number: int | None
192191
page_size: int | None
193192
subscribable_choice: NotificationConfigurationSubscribableChoice | None
194193

195194
def __init__(
196195
self,
197-
page_number: int | None = None,
198196
page_size: int | None = None,
199197
subscribable_choice: NotificationConfigurationSubscribableChoice | None = None,
200198
):
201-
self.page_number = page_number
202199
self.page_size = page_size
203200
self.subscribable_choice = subscribable_choice
204201

205202
def to_dict(self) -> dict[str, Any]:
206203
"""Convert to dictionary for API requests."""
207204
params = {}
208205

209-
if self.page_number is not None:
210-
params["page[number]"] = self.page_number
211206
if self.page_size is not None:
212207
params["page[size]"] = self.page_size
213208

src/pytfe/resources/notification_configuration.py

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,16 +42,9 @@ def list(
4242
path = f"/api/v2/workspaces/{subscribable_id}/notification-configurations"
4343

4444
params = options.to_dict() if options else None
45-
if params:
46-
params.pop("page[number]", None)
47-
params.pop("page[size]", None)
48-
params.pop("page_number", None)
4945

50-
def _gen() -> Iterator[NotificationConfiguration]:
51-
for d in self._list(path, params=params):
52-
yield self._parse_notification_configuration(d)
53-
54-
return _gen()
46+
for d in self._list(path, params=params):
47+
yield self._parse_notification_configuration(d)
5548

5649
def create(
5750
self, subscribable_id: str, options: NotificationConfigurationCreateOptions

tests/units/test_notification_configuration.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -145,12 +145,12 @@ def test_list_with_pagination(self):
145145

146146
# Test with pagination
147147
workspace_id = "ws-123456789"
148-
options = NotificationConfigurationListOptions(page_number=2, page_size=50)
148+
options = NotificationConfigurationListOptions(page_size=50)
149149

150150
result_iter = self.notifications.list(workspace_id, options)
151151
_ = list(result_iter)
152152

153-
# Verify API call with default pagination keys
153+
# page_size from options is respected by _list(); page[number] is controlled by _list()
154154
self.mock_transport.request.assert_called_once()
155155
call_args = self.mock_transport.request.call_args
156156
assert call_args[0][0] == "GET"
@@ -162,12 +162,12 @@ def test_list_with_pagination(self):
162162
assert isinstance(params, dict)
163163
assert "page[number]" in params and "page[size]" in params
164164
assert params["page[number]"] == 1
165-
assert params["page[size]"] == 100
165+
assert params["page[size]"] == 50
166166

167167
def test_list_invalid_id(self):
168168
"""Test list with invalid subscribable ID."""
169169
with pytest.raises(InvalidOrgError):
170-
self.notifications.list("")
170+
list(self.notifications.list(""))
171171

172172
def test_create_workspace_notification(self):
173173
"""Test creating a notification configuration for a workspace."""
@@ -642,10 +642,10 @@ def test_notification_configuration_list(self):
642642

643643
def test_list_options_to_dict(self):
644644
"""Test list options conversion to dictionary."""
645-
options = NotificationConfigurationListOptions(page_number=2, page_size=50)
645+
options = NotificationConfigurationListOptions(page_size=50)
646646
result = options.to_dict()
647647

648-
assert result == {"page[number]": 2, "page[size]": 50}
648+
assert result == {"page[size]": 50}
649649

650650
def test_create_options_to_dict(self):
651651
"""Test create options conversion to dictionary."""

0 commit comments

Comments
 (0)