from datetime import timedelta from cachetools import TTLCache as StandardTTLCache from pytest_freezegun import freeze_time from t_tech.invest.caching.overrides import TTLCache as OverridenTTLCache class TestTTLCache: def _assert_ttl_cache(self, ttl_cache_class, expires): with freeze_time() as frozen_datetime: ttl = ttl_cache_class( maxsize=10, ttl=1, ) ttl.update({"1": 1}) assert ttl.keys() frozen_datetime.tick(timedelta(seconds=10000)) assert not ttl.keys() == expires def test_overriden_cache(self): self._assert_ttl_cache(OverridenTTLCache, expires=True) def test_standard_cache(self): self._assert_ttl_cache(StandardTTLCache, expires=False)