import unittest from unittest.mock import MagicMock, patch from cellxgene_gateway.cache_entry import CacheEntry from cellxgene_gateway.backend_cache import BackendCache class TestPruneProcessCache(unittest.TestCase): @patch('cellxgene_gateway.util.current_time_stamp', new=lambda:0) @patch('cellxgene_gateway.env.ttl', new='10') @patch('cellxgene_gateway.cache_entry.CacheEntry') @patch('cellxgene_gateway.cache_entry.CacheEntry') def test_GIVEN_one_old_one_new_THEN_prune_old(self, old, new): from cellxgene_gateway.prune_process_cache import PruneProcessCache cache = BackendCache() old.timestamp = -100 cache.entry_list.append(old) new.timestamp = -5 cache.entry_list.append(new) self.assertEqual(len(cache.entry_list), 2) ppc = PruneProcessCache(cache) ppc.prune() self.assertEqual(len(cache.entry_list), 1) self.assertEqual(cache.entry_list[0], new) if __name__ == '__main__': unittest.main()