Files
notifications-admin/tests/app/notify_client/test_status_api_client.py
2022-08-05 01:22:32 -07:00

64 lines
2.1 KiB
Python

import pytest
from app.notify_client.status_api_client import StatusApiClient
@pytest.mark.skip(reason='@cache decorator disabled until caching is fixed')
def test_get_count_of_live_services_and_organisations(mocker):
mocker.patch('app.extensions.RedisClient.get', return_value=None)
client = StatusApiClient()
mock = mocker.patch.object(client, 'get', return_value={})
client.get_count_of_live_services_and_organisations()
mock.assert_called_once_with(url='/_status/live-service-and-organisation-counts')
@pytest.mark.skip(reason='@cache decorator disabled until caching is fixed')
def test_sets_value_in_cache(mocker):
client = StatusApiClient()
mock_redis_get = mocker.patch(
'app.extensions.RedisClient.get',
return_value=None
)
mock_api_get = mocker.patch(
'app.notify_client.NotifyAdminAPIClient.get',
return_value={'data_from': 'api'},
)
mock_redis_set = mocker.patch(
'app.extensions.RedisClient.set',
)
assert client.get_count_of_live_services_and_organisations() == {'data_from': 'api'}
mock_redis_get.assert_called_once_with('live-service-and-organisation-counts')
mock_api_get.assert_called_once_with(url='/_status/live-service-and-organisation-counts')
mock_redis_set.assert_called_once_with(
'live-service-and-organisation-counts',
'{"data_from": "api"}',
ex=3600
)
@pytest.mark.skip(reason='@cache decorator disabled until caching is fixed')
def test_returns_value_from_cache(mocker):
client = StatusApiClient()
mock_redis_get = mocker.patch(
'app.extensions.RedisClient.get',
return_value=b'{"data_from": "cache"}',
)
mock_api_get = mocker.patch(
'app.notify_client.NotifyAdminAPIClient.get',
)
mock_redis_set = mocker.patch(
'app.extensions.RedisClient.set',
)
assert client.get_count_of_live_services_and_organisations() == {'data_from': 'cache'}
mock_redis_get.assert_called_once_with('live-service-and-organisation-counts')
assert mock_api_get.called is False
assert mock_redis_set.called is False