Пример #1
0
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
Пример #2
0
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