summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
authorPaul "LeoNerd" Evans <paul@matrix.org>2015-03-20 18:13:49 +0000
committerPaul "LeoNerd" Evans <paul@matrix.org>2015-03-20 18:25:42 +0000
commit0f86312c4cb262ad1b69207dd46712707dee75bb (patch)
treecf1489f5a43902be0a40362940ac8821cae0e555 /tests
parentfunc(*EXPR) is valid Python syntax, really... (diff)
downloadsynapse-0f86312c4cb262ad1b69207dd46712707dee75bb.tar.xz
Pull out the cache logic from the @cached wrapper into its own class we can reuse
Diffstat (limited to 'tests')
-rw-r--r--tests/storage/test__base.py34
1 files changed, 33 insertions, 1 deletions
diff --git a/tests/storage/test__base.py b/tests/storage/test__base.py
index 55d22f665a..783abc2b00 100644
--- a/tests/storage/test__base.py
+++ b/tests/storage/test__base.py
@@ -17,7 +17,39 @@
 from tests import unittest
 from twisted.internet import defer
 
-from synapse.storage._base import cached
+from synapse.storage._base import Cache, cached
+
+
+class CacheTestCase(unittest.TestCase):
+
+    def setUp(self):
+        self.cache = Cache("test")
+
+    def test_empty(self):
+        failed = False
+        try:
+            self.cache.get("foo")
+        except KeyError:
+            failed = True
+
+        self.assertTrue(failed)
+
+    def test_hit(self):
+        self.cache.prefill("foo", 123)
+
+        self.assertEquals(self.cache.get("foo"), 123)
+
+    def test_invalidate(self):
+        self.cache.prefill("foo", 123)
+        self.cache.invalidate("foo")
+
+        failed = False
+        try:
+            self.cache.get("foo")
+        except KeyError:
+            failed = True
+
+        self.assertTrue(failed)
 
 
 class CacheDecoratorTestCase(unittest.TestCase):