Skip to content

Commit ef48d3f

Browse files
committed
fix: filter cancel/remind-all querysets explicitly
ENT-8156 | Previous related change didn't include calls to `self.filter_queryset()`.
1 parent f8a2333 commit ef48d3f

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

enterprise_access/apps/api/v1/tests/test_assignment_views.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1140,6 +1140,7 @@ def test_cancel_all_filter_multiple_learner_states(self):
11401140
[mock.call(assignment.uuid) for assignment in expected_cancelled_assignments],
11411141
any_order=True,
11421142
)
1143+
assert mock_cancel_task.delay.call_count == len(expected_cancelled_assignments)
11431144
for assignment in expected_cancelled_assignments:
11441145
assignment.refresh_from_db()
11451146
self.assertEqual(assignment.state, LearnerContentAssignmentStateChoices.CANCELLED)
@@ -1170,6 +1171,7 @@ def test_cancel_all_filter_single_learner_state(self):
11701171
[mock.call(assignment.uuid) for assignment in expected_cancelled_assignments],
11711172
any_order=True,
11721173
)
1174+
assert mock_cancel_task.delay.call_count == len(expected_cancelled_assignments)
11731175
for assignment in expected_cancelled_assignments:
11741176
assignment.refresh_from_db()
11751177
self.assertEqual(assignment.state, LearnerContentAssignmentStateChoices.CANCELLED)
@@ -1207,6 +1209,7 @@ def test_remind_all_filter_multiple_learner_states(self):
12071209
[mock.call(assignment.uuid) for assignment in expected_reminded_assignments],
12081210
any_order=True,
12091211
)
1212+
assert mock_remind_task.delay.call_count == len(expected_reminded_assignments)
12101213
for assignment in expected_reminded_assignments:
12111214
assignment.refresh_from_db()
12121215
self.assertEqual(assignment.state, LearnerContentAssignmentStateChoices.ALLOCATED)
@@ -1237,6 +1240,7 @@ def test_remind_all_filter_single_learner_state(self):
12371240
[mock.call(assignment.uuid) for assignment in expected_reminded_assignments],
12381241
any_order=True,
12391242
)
1243+
assert mock_remind_task.delay.call_count == len(expected_reminded_assignments)
12401244
for assignment in expected_reminded_assignments:
12411245
assignment.refresh_from_db()
12421246
self.assertEqual(assignment.state, LearnerContentAssignmentStateChoices.ALLOCATED)

enterprise_access/apps/api/v1/views/content_assignments/assignments_admin.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -237,13 +237,14 @@ def cancel_all(self, request, *args, **kwargs):
237237
238238
```
239239
Raises:
240-
404 if any of the assignments were not found
240+
404 if no cancelable assignments were found
241241
422 if any of the assignments threw an error (not found or not cancelable)
242242
```
243243
"""
244-
assignments = self.get_queryset().filter(
244+
base_queryset = self.get_queryset().filter(
245245
state__in=LearnerContentAssignmentStateChoices.CANCELABLE_STATES,
246246
)
247+
assignments = self.filter_queryset(base_queryset)
247248
if not assignments:
248249
return Response(status=status.HTTP_404_NOT_FOUND)
249250

@@ -320,13 +321,14 @@ def remind_all(self, request, *args, **kwargs):
320321
321322
```
322323
Raises:
323-
404 if any of the assignments were not found
324+
404 if no cancelable assignments were found
324325
422 if any of the assignments threw an error (not found or not remindable)
325326
```
326327
"""
327-
assignments = self.get_queryset().filter(
328+
base_queryset = self.get_queryset().filter(
328329
state__in=LearnerContentAssignmentStateChoices.REMINDABLE_STATES,
329330
)
331+
assignments = self.filter_queryset(base_queryset)
330332
if not assignments:
331333
return Response(status=status.HTTP_404_NOT_FOUND)
332334

0 commit comments

Comments
 (0)