"""Test jwt eservices cache logic""" import unittest import pytest from unittest import mock from unittest.mock import MagicMock from daemonJwtHandler.constants import auth from daemonJwtHandler.logic import jwt_services class JwtServices(unittest.TestCase): def setUp(self): self.jwt_service_client = MagicMock() def test_get_jwt_enabled_services(self): """Test for get_jwt_enabled_services.""" mock_jwt_enabled_services = ['ows-account'] self.jwt_service_client.getJwtEnabledServices = MagicMock( return_value=mock_jwt_enabled_services) result = self.jwt_service_client.getJwtEnabledServices() assert result == mock_jwt_enabled_services def test_cache_jwt_enabled_services(self): """Test caching of jwt_enabled_services.""" expected_jwt_enabled_services = ['ows-account'] self.jwt_service_client.setCache( 'jwt_enabled_services', expected_jwt_enabled_services, 0) self.jwt_service_client.getCache = MagicMock( return_value=expected_jwt_enabled_services) result = self.jwt_service_client.getCache( 'jwt_enabled_services') assert result == expected_jwt_enabled_services def test_update_jwt_enabled_services_cache(self): """Test update cache.""" expected_jwt_enabled_services = ['ows-account', 'ows-service'] mock_jwt_enabled_services = ['ows-account'] # Get existing cache data self.jwt_service_client.getCache = MagicMock( return_value=mock_jwt_enabled_services) result = self.jwt_service_client.getCache( 'jwt_enabled_services') # Append new item in a list mock_jwt_enabled_services = ['ows-account'] mock_jwt_enabled_services.append( 'ows-service' ) # Cache new jwt list self.jwt_service_client.setCache( 'jwt_enabled_services', mock_jwt_enabled_services, 0) # Get the newly cached list self.jwt_service_client.getCache = MagicMock( return_value=mock_jwt_enabled_services) result = self.jwt_service_client.getCache( 'jwt_enabled_services') assert result == expected_jwt_enabled_services def test_get_jwt(self): """Test for get_jwt.""" mock_jwt_token = { auth.JWT_SECRET_KEY: 'Jwttoken', auth.JWT_EXPIRY_SECRET_KEY: '2021-12-31 16:34:37' } self.jwt_service_client.get_jwt = MagicMock( return_value=mock_jwt_token) result = self.jwt_service_client.get_jwt() assert result == mock_jwt_token def test_cache_jwt(self): """Test caching of jwt token.""" expected_jwt_token = { auth.JWT_SECRET_KEY: 'Jwttoken', auth.JWT_EXPIRY_SECRET_KEY: '2021-12-31 16:34:37' } self.jwt_service_client.setCache( auth.JWT_SECRET_KEY, expected_jwt_token, 0) self.jwt_service_client.getCache = MagicMock( return_value=expected_jwt_token) result = self.jwt_service_client.getCache( auth.JWT_SECRET_KEY) assert result == expected_jwt_token def test_update_jwt_cache(self): """Test update cache.""" expected_jwt_token = { auth.JWT_SECRET_KEY: 'Jwttokenchanged', auth.JWT_EXPIRY_SECRET_KEY: '2021-12-31 16:34:37' } mock_jwt_token = { auth.JWT_SECRET_KEY: 'Jwttoken', auth.JWT_EXPIRY_SECRET_KEY: '2021-12-31 16:34:37' } # Get existing cache data self.jwt_service_client.getCache = MagicMock( return_value=mock_jwt_token) result = self.jwt_service_client.getCache( auth.JWT_SECRET_KEY) # change value of dict mock_jwt_token[auth.JWT_SECRET_KEY] = 'Jwttokenchanged' mock_jwt_token[auth.JWT_EXPIRY_SECRET_KEY] = '2021-12-31 16:34:37' # Cache new jwt list self.jwt_service_client.setCache( auth.JWT_SECRET_KEY, mock_jwt_token, 0) # Get the newly cached list self.jwt_service_client.getCache = MagicMock( return_value=mock_jwt_token) result = self.jwt_service_client.getCache( auth.JWT_SECRET_KEY) assert result == expected_jwt_token