Skip to content

Commit dd69193

Browse files
author
Thomas Kemmer
committed
Add test case for decorator lock count.
1 parent 2041c6f commit dd69193

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

tests/test_cached.py

+28
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,34 @@ def test_decorator_info(self):
164164
self.assertEqual(len(cache), 0)
165165
self.assertEqual(wrapper.cache_info(), (0, 0, 2, 0))
166166

167+
def test_decorator_lock_info(self):
168+
# hit: lock.count += 1
169+
# miss: lock.count += 3 (get, update missed, set)
170+
# info: lock.count += 1
171+
# clear: lock.count += 1
172+
cache = self.cache(2)
173+
lock = CountedLock()
174+
wrapper = cachetools.cached(cache, lock=lock, info=True)(self.func)
175+
self.assertEqual(wrapper.cache_info(), (0, 0, 2, 0))
176+
self.assertEqual(lock.count, 1)
177+
self.assertEqual(wrapper(0), 0)
178+
self.assertEqual(lock.count, 4)
179+
self.assertEqual(wrapper.cache_info(), (0, 1, 2, 1))
180+
self.assertEqual(lock.count, 5)
181+
self.assertEqual(wrapper(1), 1)
182+
self.assertEqual(lock.count, 8)
183+
self.assertEqual(wrapper.cache_info(), (0, 2, 2, 2))
184+
self.assertEqual(lock.count, 9)
185+
self.assertEqual(wrapper(0), 0)
186+
self.assertEqual(lock.count, 10)
187+
self.assertEqual(wrapper.cache_info(), (1, 2, 2, 2))
188+
self.assertEqual(lock.count, 11)
189+
wrapper.cache_clear()
190+
self.assertEqual(lock.count, 12)
191+
self.assertEqual(len(cache), 0)
192+
self.assertEqual(wrapper.cache_info(), (0, 0, 2, 0))
193+
self.assertEqual(lock.count, 13)
194+
167195
def test_zero_size_cache_decorator(self):
168196
cache = self.cache(0)
169197
wrapper = cachetools.cached(cache)(self.func)

0 commit comments

Comments
 (0)