Add API client for notifications

This commit adds an API client for the notifications endpoints added in:
https://github.com/alphagov/notifications-api/pull/113
This commit is contained in:
Chris Hill-Scott
2016-03-02 13:52:05 +00:00
parent 542f097b6d
commit 2f76ef27ce
2 changed files with 78 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
import pytest
from app.notify_client.notification_api_client import NotificationApiClient
def test_client_gets_notifications(mocker):
mock_get = mocker.patch('app.notify_client.notification_api_client.NotificationApiClient.get')
NotificationApiClient().get_all_notifications()
mock_get.assert_called_once_with(url='/notifications', params={})
def test_client_gets_notifications_with_page(mocker):
mock_get = mocker.patch('app.notify_client.notification_api_client.NotificationApiClient.get')
NotificationApiClient().get_all_notifications(page=99)
mock_get.assert_called_once_with(url='/notifications', params={'page': 99})
@pytest.mark.parametrize("arguments,expected_call", [
(
{},
{'url': '/service/abcd1234/notifications', 'params': {}}
),
(
{'page': 99},
{'url': '/service/abcd1234/notifications', 'params': {'page': 99}}
),
(
{'job_id': 'efgh5678'},
{'url': '/service/abcd1234/job/efgh5678/notifications', 'params': {}}
),
(
{'job_id': 'efgh5678', 'page': 48},
{'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)