mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-05 19:03:30 -05:00
152 lines
4.6 KiB
Python
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",
|
|
)
|