from app.notify_client.status_api_client import StatusApiClient def test_get_count_of_live_services_and_organizations(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_organizations() mock.assert_called_once_with(url="/_status/live-service-and-organization-counts") 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_organizations() == {"data_from": "api"} mock_redis_get.assert_called_once_with("live-service-and-organization-counts") mock_api_get.assert_called_once_with( url="/_status/live-service-and-organization-counts" ) mock_redis_set.assert_called_once_with( "live-service-and-organization-counts", '{"data_from": "api"}', ex=3600 ) 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_organizations() == { "data_from": "cache" } mock_redis_get.assert_called_once_with("live-service-and-organization-counts") assert mock_api_get.called is False assert mock_redis_set.called is False