"""Tests for runtime mode resolution.""" from basic_memory.runtime import RuntimeMode, resolve_runtime_mode class TestRuntimeMode: """Tests for RuntimeMode enum.""" def test_local_mode_properties(self): mode = RuntimeMode.LOCAL assert mode.is_local is True assert mode.is_cloud is False assert mode.is_test is False def test_cloud_mode_properties(self): mode = RuntimeMode.CLOUD assert mode.is_local is False assert mode.is_cloud is True assert mode.is_test is False def test_test_mode_properties(self): mode = RuntimeMode.TEST assert mode.is_local is False assert mode.is_cloud is False assert mode.is_test is True class TestResolveRuntimeMode: """Tests for resolve_runtime_mode function.""" def test_resolves_to_test_when_test_env(self): """Test environment takes precedence over cloud mode.""" mode = resolve_runtime_mode(cloud_mode_enabled=True, is_test_env=True) assert mode == RuntimeMode.TEST def test_resolves_to_cloud_when_enabled(self): """Cloud mode is used when enabled and not in test env.""" mode = resolve_runtime_mode(cloud_mode_enabled=True, is_test_env=False) assert mode == RuntimeMode.CLOUD def test_resolves_to_local_by_default(self): """Local mode is the default when no other modes apply.""" mode = resolve_runtime_mode(cloud_mode_enabled=False, is_test_env=False) assert mode == RuntimeMode.LOCAL def test_test_env_overrides_cloud_mode(self): """Test environment should override cloud mode.""" # When both are enabled, test takes precedence mode = resolve_runtime_mode(cloud_mode_enabled=True, is_test_env=True) assert mode == RuntimeMode.TEST assert mode.is_test is True assert mode.is_cloud is False