Upd
This commit is contained in:
parent
12206aa9b1
commit
86378dcc5d
@ -31,6 +31,12 @@ class TranscriptionDict:
|
||||
expired_items = [k for k, v in self._dict.items() if now - v['timestamp'] >= 180] # 180 seconds = 3 minutes
|
||||
for key in expired_items:
|
||||
del self._dict[key]
|
||||
|
||||
# Ensure the cache size does not exceed max_size
|
||||
while len(self._dict) > self.max_size:
|
||||
oldest_key = min(self._dict, key=lambda k: self._dict[k]['timestamp'])
|
||||
del self._dict[oldest_key]
|
||||
|
||||
print(f"Cleaned {len(expired_items)} expired items from the cache")
|
||||
|
||||
def _clean_expired_items_periodically(self):
|
||||
|
||||
44
transcription_dict_test.py
Normal file
44
transcription_dict_test.py
Normal file
@ -0,0 +1,44 @@
|
||||
import unittest
|
||||
import time
|
||||
from transcription_dict import TranscriptionDict
|
||||
|
||||
class TestTranscriptionDict(unittest.TestCase):
|
||||
|
||||
def test_basic_operations(self):
|
||||
cache = TranscriptionDict(max_size=3)
|
||||
|
||||
# Test setting and getting items
|
||||
cache.set("key1", "value1")
|
||||
self.assertEqual(cache.get("key1"), "value1")
|
||||
|
||||
# Test setting and getting items with default value
|
||||
self.assertEqual(cache.get("non_existent_key", "default_value"), "default_value")
|
||||
|
||||
# Test updating value
|
||||
cache.set("key1", "updated_value1")
|
||||
self.assertEqual(cache.get("key1"), "updated_value1")
|
||||
|
||||
# Test cache size limit
|
||||
cache.set("key2", "value2")
|
||||
cache.set("key3", "value3")
|
||||
cache.set("key4", "value4")
|
||||
self.assertEqual(len(cache), 3)
|
||||
self.assertNotIn("key1", cache)
|
||||
|
||||
def test_item_expiration(self):
|
||||
cache = TranscriptionDict(max_size=5)
|
||||
|
||||
# Test setting items
|
||||
cache.set("key1", "value1")
|
||||
time.sleep(2) # Sleep for 2 seconds
|
||||
cache.set("key2", "value2")
|
||||
|
||||
# Test that key1 has not expired yet
|
||||
self.assertIn("key1", cache)
|
||||
|
||||
# Sleep for enough time to let key1 expire
|
||||
time.sleep(200) # Sleep for 3+ minutes (200 seconds)
|
||||
self.assertNotIn("key1", cache)
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
Loading…
Reference in New Issue
Block a user