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()