mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-07-25 18:38:57 -04:00
Add limit_days argument to statistics API client method
Allows getting notification counts for a given number of days to support services with custom data retention periods (admin dashboard page should still display counts for the last 7 days, while the notifications page displays all stored notifications).
This commit is contained in:
@@ -41,8 +41,10 @@ class ServiceAPIClient(NotifyAdminAPIClient):
|
||||
"""
|
||||
return self.get('/service/{0}'.format(service_id))
|
||||
|
||||
def get_service_statistics(self, service_id, today_only):
|
||||
return self.get('/service/{0}/statistics'.format(service_id), params={'today_only': today_only})['data']
|
||||
def get_service_statistics(self, service_id, today_only, limit_days=None):
|
||||
return self.get('/service/{0}/statistics'.format(service_id), params={
|
||||
'today_only': today_only, 'limit_days': limit_days
|
||||
})['data']
|
||||
|
||||
def get_services(self, params_dict=None):
|
||||
"""
|
||||
|
||||
@@ -35,15 +35,21 @@ def test_client_gets_service(mocker):
|
||||
mock_get.assert_called_once_with('/service/foo')
|
||||
|
||||
|
||||
@pytest.mark.parametrize('today_only', [True, False])
|
||||
def test_client_gets_service_statistics(mocker, today_only):
|
||||
@pytest.mark.parametrize('today_only, limit_days', [
|
||||
(True, None),
|
||||
(False, None),
|
||||
(False, 30),
|
||||
])
|
||||
def test_client_gets_service_statistics(mocker, today_only, limit_days):
|
||||
client = ServiceAPIClient()
|
||||
mock_get = mocker.patch.object(client, 'get', return_value={'data': {'a': 'b'}})
|
||||
|
||||
ret = client.get_service_statistics('foo', today_only)
|
||||
ret = client.get_service_statistics('foo', today_only, limit_days)
|
||||
|
||||
assert ret == {'a': 'b'}
|
||||
mock_get.assert_called_once_with('/service/foo/statistics', params={'today_only': today_only})
|
||||
mock_get.assert_called_once_with('/service/foo/statistics', params={
|
||||
'today_only': today_only, 'limit_days': limit_days
|
||||
})
|
||||
|
||||
|
||||
def test_client_only_updates_allowed_attributes(mocker):
|
||||
|
||||
@@ -523,7 +523,7 @@ def mock_get_international_service(mocker, api_user_active):
|
||||
|
||||
@pytest.fixture(scope='function')
|
||||
def mock_get_service_statistics(mocker, api_user_active):
|
||||
def _get(service_id, today_only):
|
||||
def _get(service_id, today_only, limit_days=None):
|
||||
return {
|
||||
'email': {'requested': 0, 'delivered': 0, 'failed': 0},
|
||||
'sms': {'requested': 0, 'delivered': 0, 'failed': 0},
|
||||
|
||||
Reference in New Issue
Block a user