def test_convert_cached_data(cache_manager: CacheManager): meta_data = [] feature = ACCESSIBILITY empty_cache = cache_manager.convert_cached_data(meta_data, feature) assert empty_cache[EXPLANATION] == [Explanation.Cached] assert empty_cache[STAR_CASE] == StarCase.ONE assert empty_cache[VALUES] == [] meta_data = [ f'{{"{VALUES}":[], "{EXPLANATION}": ["{Explanation.AccessibilityServiceReturnedFailure}"], ' f'"{STAR_CASE}": "{StarCase.ONE}", ' f'"{TIMESTAMP}": {get_utc_now()}}}' ] cache_output = cache_manager.convert_cached_data(meta_data, feature) assert isinstance(cache_output, dict) assert len(cache_output.keys()) == 3 assert cache_output[EXPLANATION] == [ Explanation.Cached, Explanation.AccessibilityServiceReturnedFailure, ] assert cache_output[STAR_CASE] == StarCase.ONE assert cache_output[VALUES] == [] meta_data = [ f'{{"{VALUES}":[], "{EXPLANATION}": [], ' f'"{STAR_CASE}": "{StarCase.ONE}", ' f'"{TIMESTAMP}": {get_utc_now()}}}' ] cache_output = cache_manager.convert_cached_data(meta_data, feature) assert cache_output[STAR_CASE] == StarCase.ONE meta_data = [ f'{{"{VALUES}":[0.85, 0.95], "{EXPLANATION}": ["{Explanation.AccessibilitySuitable}"], ' f'"{STAR_CASE}": "{StarCase.ONE}", ' f'"{TIMESTAMP}": {get_utc_now()}}}' ] cache_output = cache_manager.convert_cached_data(meta_data, feature) assert cache_output[VALUES] == [0.9] assert cache_output[EXPLANATION] == [ Explanation.Cached, Explanation.AccessibilitySuitable, ] meta_data = [ f'{{"{VALUES}":[], "{EXPLANATION}": [], ' f'"{STAR_CASE}": "{StarCase.FIVE}", ' f'"{TIMESTAMP}": {get_utc_now()}}}' ] cache_output = cache_manager.convert_cached_data(meta_data, feature) assert cache_output[STAR_CASE] == StarCase.FIVE
def test_get_predefined_metadata(mocker, cache_manager: CacheManager): meta_data = [] feature = ACCESSIBILITY empty_cache = cache_manager.convert_cached_data(meta_data, feature) assert empty_cache[EXPLANATION] == [Explanation.Cached] assert empty_cache[STAR_CASE] == StarCase.ONE assert empty_cache[VALUES] == [] meta_data = ( f'{{"{VALUES}":[], "{EXPLANATION}": ["{Explanation.AccessibilityServiceReturnedFailure}"], ' + f'"{STAR_CASE}": "{StarCase.ONE}"}}') with mock.patch("cache.cache_manager.read_cached_values_by_feature"): cache_manager.convert_cached_data = mocker.MagicMock() cache_manager.convert_cached_data.return_value = json.loads(meta_data) cache_output = cache_manager.get_predefined_metadata(feature) assert isinstance(cache_output, dict) assert len(cache_output.keys()) == 1 assert len(cache_output[feature].keys()) == 4