Files
notifications-admin/tests/app/notify_client/test_notification_client.py
Carlo Costino 72c8a46b8c Reformatted a handful more tests
Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-10-12 10:24:48 -04:00

152 lines
4.6 KiB
Python

import pytest
from app.notify_client.notification_api_client import NotificationApiClient
@pytest.mark.parametrize(
("arguments", "expected_call"),
[
({}, {"url": "/service/abcd1234/notifications", "params": {}}),
(
{"page": 99},
{"url": "/service/abcd1234/notifications", "params": {"page": 99}},
),
(
{"include_jobs": False},
{
"url": "/service/abcd1234/notifications",
"params": {"include_jobs": False},
},
),
(
{"include_from_test_key": True},
{
"url": "/service/abcd1234/notifications",
"params": {"include_from_test_key": True},
},
),
(
{"page": 48, "limit_days": 3},
{
"url": "/service/abcd1234/notifications",
"params": {"page": 48, "limit_days": 3},
},
),
(
{"job_id": "efgh5678"},
{"url": "/service/abcd1234/job/efgh5678/notifications", "params": {}},
),
(
{"job_id": "efgh5678", "page": 48},
{
"url": "/service/abcd1234/job/efgh5678/notifications",
"params": {"page": 48},
},
),
(
{"job_id": "efgh5678", "page": 48, "limit_days": 3},
{
"url": "/service/abcd1234/job/efgh5678/notifications",
"params": {"page": 48},
},
),
],
)
def test_client_gets_notifications_for_service_and_job_by_page(
mocker, arguments, expected_call
):
mock_get = mocker.patch(
"app.notify_client.notification_api_client.NotificationApiClient.get"
)
NotificationApiClient().get_notifications_for_service("abcd1234", **arguments)
mock_get.assert_called_once_with(**expected_call)
@pytest.mark.parametrize(
("arguments", "expected_call"),
[
(
{"to": "2028675309"},
{"url": "/service/abcd1234/notifications", "data": {"to": "2028675309"}},
),
(
{"to": "2028675309", "job_id": "efgh5678"},
{
"url": "/service/abcd1234/job/efgh5678/notifications",
"data": {"to": "2028675309"},
},
),
(
{"to": "2028675309", "page": 99},
{
"url": "/service/abcd1234/notifications",
"data": {"to": "2028675309", "page": 99},
},
),
(
{"to": "2028675309", "limit_days": 3},
{
"url": "/service/abcd1234/notifications",
"data": {"to": "2028675309", "limit_days": 3},
},
),
(
{"to": "2028675309", "job_id": "efgh5678", "limit_days": 3},
{
"url": "/service/abcd1234/job/efgh5678/notifications",
"data": {"to": "2028675309"},
},
),
],
)
def test_client_gets_notifications_for_service_and_job_by_page_posts_for_to(
mocker, arguments, expected_call
):
mock_post = mocker.patch(
"app.notify_client.notification_api_client.NotificationApiClient.post"
)
NotificationApiClient().get_notifications_for_service("abcd1234", **arguments)
mock_post.assert_called_once_with(**expected_call)
def test_send_notification(mocker, client_request, active_user_with_permissions):
mock_post = mocker.patch(
"app.notify_client.notification_api_client.NotificationApiClient.post"
)
NotificationApiClient().send_notification(
"foo",
template_id="bar",
recipient="2028675301",
personalisation=None,
sender_id=None,
)
mock_post.assert_called_once_with(
url="/service/foo/send-notification",
data={
"template_id": "bar",
"to": "2028675301",
"personalisation": None,
"created_by": active_user_with_permissions["id"],
},
)
def test_get_notification(mocker):
mock_get = mocker.patch(
"app.notify_client.notification_api_client.NotificationApiClient.get"
)
NotificationApiClient().get_notification("foo", "bar")
mock_get.assert_called_once_with(url="/service/foo/notifications/bar")
def test_get_notification_count_for_job_id(mocker):
mock_get = mocker.patch(
"app.notify_client.notification_api_client.NotificationApiClient.get"
)
NotificationApiClient().get_notification_count_for_job_id(
service_id="foo", job_id="bar"
)
mock_get.assert_called_once_with(
url="/service/foo/job/bar/notification_count",
)