summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJasper Spaans <spaans@fox-it.com>2013-10-01 17:22:55 +0200
committerJasper Spaans <spaans@fox-it.com>2013-10-01 17:22:55 +0200
commitec90e3d8d7f12599d69eeeaf925c648651d2c753 (patch)
treef9c1975508754a6687a6301f093514f763f07f2a
parentb287cb9033168e42b13feecbc3ffe3900afc1eb5 (diff)
downloadrepoze-lru-ec90e3d8d7f12599d69eeeaf925c648651d2c753.tar.gz
Expose cache object on the wrapped function, so end users can also extract
cache data easily.
-rw-r--r--repoze/lru/__init__.py1
-rw-r--r--repoze/lru/tests.py8
2 files changed, 9 insertions, 0 deletions
diff --git a/repoze/lru/__init__.py b/repoze/lru/__init__.py
index 8e48859..c1e93d7 100644
--- a/repoze/lru/__init__.py
+++ b/repoze/lru/__init__.py
@@ -290,6 +290,7 @@ class lru_cache(object):
lru_cached.__module__ = f.__module__
lru_cached.__name__ = f.__name__
lru_cached.__doc__ = f.__doc__
+ lru_cached._cache = cache
return lru_cached
diff --git a/repoze/lru/tests.py b/repoze/lru/tests.py
index 8866a22..303a401 100644
--- a/repoze/lru/tests.py
+++ b/repoze/lru/tests.py
@@ -522,6 +522,14 @@ class DecoratorTests(unittest.TestCase):
self.assertEqual(result, 2)
self.assertEqual(len(cache), 2)
+ def test_cache_attr(self):
+ cache = DummyLRUCache()
+ decorator = self._makeOne(0, cache)
+ def wrapped(key):
+ return key
+ decorated = decorator(wrapped)
+ self.assertEqual(decorated._cache, cache)
+
def test_multiargs(self):
cache = DummyLRUCache()
decorator = self._makeOne(0, cache)