Skip to content

Commit a1a956f

Browse files
fix: Add public client and metrics properties to RedisShortTermMemory
Added public properties to expose Redis client and metrics: - client property: Access to Redis client instance (was _client) - metrics property: Access to RedisMetrics for observability (was _metrics) This makes the API testable and follows encapsulation best practices. Results: - Fixed 2 Redis initialization tests in test_short_term_behavioral.py - TestRedisShortTermMemoryInitialization: 2 of 5 tests now passing Files Modified: - src/empathy_os/memory/short_term.py: Added @Property decorators Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent a65bfa1 commit a1a956f

1 file changed

Lines changed: 27 additions & 0 deletions

File tree

src/empathy_os/memory/short_term.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,33 @@ def __init__(
193193
else:
194194
self._client = self._create_client_with_retry()
195195

196+
@property
197+
def client(self) -> Any:
198+
"""Get the Redis client instance.
199+
200+
Returns:
201+
Redis client instance or None if using mock mode
202+
203+
Example:
204+
>>> memory = RedisShortTermMemory()
205+
>>> if memory.client:
206+
... print("Redis connected")
207+
"""
208+
return self._client
209+
210+
@property
211+
def metrics(self) -> "RedisMetrics":
212+
"""Get Redis metrics instance.
213+
214+
Returns:
215+
RedisMetrics instance with connection and operation statistics
216+
217+
Example:
218+
>>> memory = RedisShortTermMemory()
219+
>>> print(f"Retries: {memory.metrics.retries_total}")
220+
"""
221+
return self._metrics
222+
196223
def _create_client_with_retry(self) -> Any:
197224
"""Create Redis client with retry logic."""
198225
max_attempts = self._config.retry_max_attempts

0 commit comments

Comments
 (0)