Make DAO optionally return test key notifications

Developers need visibility of what their integration is doing within
the app. This includes notifications sent with a test key.

This commit adds an optional, defaults-to-false parameter to include
notifications sent from a test API key when getting notifications.
This commit is contained in:
Chris Hill-Scott
2016-09-23 10:27:10 +01:00
parent b36d0ff552
commit f9f3bb8370
2 changed files with 9 additions and 4 deletions

View File

@@ -236,7 +236,8 @@ def get_notifications_for_service(
limit_days=None,
key_type=None,
personalisation=False,
include_jobs=False
include_jobs=False,
include_from_test_key=False
):
if page_size is None:
page_size = current_app.config['PAGE_SIZE']
@@ -252,7 +253,7 @@ def get_notifications_for_service(
if key_type is not None:
filters.append(Notification.key_type == key_type)
else:
elif not include_from_test_key:
filters.append(Notification.key_type != KEY_TYPE_TEST)
query = Notification.query.filter(*filters)

View File

@@ -1000,11 +1000,15 @@ def test_get_notifications_created_by_api_or_csv_are_returned_correctly_excludin
all_notifications = Notification.query.all()
assert len(all_notifications) == 4
# returns all API derived notifications
# returns all real API derived notifications
all_notifications = get_notifications_for_service(sample_service.id).items
assert len(all_notifications) == 2
# all notifications including jobs
# returns all API derived notifications, including those created with test key
all_notifications = get_notifications_for_service(sample_service.id, include_from_test_key=True).items
assert len(all_notifications) == 3
# all real notifications including jobs
all_notifications = get_notifications_for_service(sample_service.id, limit_days=1, include_jobs=True).items
assert len(all_notifications) == 3