summaryrefslogtreecommitdiff
path: root/tests/test_cache.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_cache.py')
-rw-r--r--tests/test_cache.py64
1 files changed, 64 insertions, 0 deletions
diff --git a/tests/test_cache.py b/tests/test_cache.py
new file mode 100644
index 00000000..789e8bbf
--- /dev/null
+++ b/tests/test_cache.py
@@ -0,0 +1,64 @@
+import unittest
+from slixmpp.test import SlixTest
+from slixmpp.util import (
+ MemoryCache, MemoryPerJidCache,
+ FileSystemCache, FileSystemPerJidCache
+)
+from tempfile import TemporaryDirectory
+
+class TestCacheClass(SlixTest):
+
+ def testMemoryCache(self):
+ cache = MemoryCache()
+
+ cache.store("test", "test_value")
+ self.assertEqual(cache.retrieve("test"), "test_value")
+ self.assertEqual(cache.retrieve("test2"), None)
+
+ cache.remove("test")
+ self.assertEqual(cache.retrieve("test"), None)
+
+ def testMemoryPerJidcache(self):
+ cache = MemoryPerJidCache()
+
+ cache.store_by_jid("test@example.com", "test", "test_value")
+ self.assertEqual(
+ cache.retrieve_by_jid("test@example.com", "test"),
+ "test_value"
+ )
+
+ cache.remove_by_jid("test@example.com", "test")
+ self.assertEqual(
+ cache.retrieve_by_jid("test@example.com", "test"),
+ None
+ )
+
+ def testFileSystemCache(self):
+ with TemporaryDirectory() as tmpdir:
+ cache = FileSystemCache(tmpdir, "test")
+ cache.store("test", "test_value")
+ self.assertEqual(
+ cache.retrieve("test"),
+ "test_value"
+ )
+ cache.remove("test")
+ self.assertEqual(
+ cache.retrieve("test"),
+ None
+ )
+
+ def testFileSystemPerJidCache(self):
+ with TemporaryDirectory() as tmpdir:
+ cache = FileSystemPerJidCache(tmpdir, "test")
+ cache.store_by_jid("test@example.com", "test", "test_value")
+ self.assertEqual(
+ cache.retrieve_by_jid("test@example.com", "test"),
+ "test_value"
+ )
+ cache.remove_by_jid("test@example.com", "test")
+ self.assertEqual(
+ cache.retrieve_by_jid("test@example.com", "test"),
+ None
+ )
+
+suite = unittest.TestLoader().loadTestsFromTestCase(TestCacheClass)