# ========= Copyright 2026 @ Strukto.AI All Rights Reserved. ========= # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ========= Copyright 2026 @ Strukto.AI All Rights Reserved. ========= from mirage import Workspace from mirage.cache.index import (RAMIndexCacheStore, RedisIndexCacheStore, RedisIndexConfig) from mirage.config import MountBlock, RedisIndexBlock, WorkspaceConfig from mirage.resource.ram import RAMResource def test_redis_index_config_default_key_prefix(): assert RedisIndexConfig().key_prefix == "mirage:index:" def test_workspace_index_param_applies_to_mounts(): r = RAMResource() Workspace({"/m": r}, index=RedisIndexConfig(url="redis://localhost:6379/0")) assert isinstance(r.index, RedisIndexCacheStore) def test_workspace_default_index_is_ram(): r = RAMResource() Workspace({"/m": r}) assert isinstance(r.index, RAMIndexCacheStore) def test_config_index_redis_block_builds_redis_config(): cfg = WorkspaceConfig( mounts={"/m": MountBlock(resource="ram")}, index=RedisIndexBlock(type="redis"), ) kwargs = cfg.to_workspace_kwargs() assert isinstance(kwargs["index"], RedisIndexConfig) assert kwargs["index"].key_prefix == "mirage:index:"