Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions app/service/rest.py
Original file line number Diff line number Diff line change
Expand Up @@ -522,6 +522,8 @@ def get_all_notifications_for_service(service_id):
include_jobs=include_jobs,
include_from_test_key=include_from_test_key,
include_one_off=include_one_off,
session=db.session_bulk,
retry_attempts=2,
)

kwargs = request.args.to_dict()
Expand All @@ -546,6 +548,8 @@ def get_all_notifications_for_service(service_id):
include_from_test_key=include_from_test_key,
include_one_off=include_one_off,
error_out=False, # False so that if there are no results, it doesn't end in aborting with a 404
session=db.session_bulk,
retry_attempts=2,
)

# count_pages is not being used for whether to count the number of pages, but instead as a flag
Expand Down
33 changes: 33 additions & 0 deletions tests/app/service/test_rest.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
from notifications_utils.testing.comparisons import AnyStringMatching, RestrictedAny
from sqlalchemy.exc import SQLAlchemyError

from app import db
from app.celery.provider_tasks import deliver_email
from app.celery.tasks import process_report_request
from app.constants import (
Expand Down Expand Up @@ -1540,6 +1541,38 @@ def test_get_all_notifications_for_service_in_order(client, notify_db_session):
assert response.status_code == 200


def test_get_all_notifications_for_service_uses_session_bulk(admin_request, sample_service, mocker):
mock_get_notifications = mocker.patch(
"app.dao.notifications_dao.get_notifications_for_service",
)

mock_pagination = mocker.MagicMock()
mock_pagination.items = []
mock_get_notifications.return_value = mock_pagination

admin_request.get("service.get_all_notifications_for_service", service_id=sample_service.id)

assert mock_get_notifications.call_count == 2

for call in mock_get_notifications.call_args_list:
assert call.kwargs["session"] == db.session_bulk


def test_get_all_notifications_for_service_search_uses_session_bulk(admin_request, sample_service, mocker):
mock_search = mocker.patch(
"app.dao.notifications_dao.dao_get_notifications_by_recipient_or_reference",
)
mock_pagination = mocker.MagicMock()
mock_pagination.items = []
mock_search.return_value = mock_pagination

admin_request.get("service.get_all_notifications_for_service", service_id=sample_service.id, to="test@example.com")

assert mock_search.call_count == 2
for call in mock_search.call_args_list:
assert call.kwargs["session"] == db.session_bulk


def test_get_all_notifications_for_service_in_order_with_post_request(client, notify_db_session):
service_1 = create_service(service_name="1")
service_2 = create_service(service_name="2")
Expand Down
Loading