45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
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()
|