summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorSean Reifschneider <sean@realgo.com>2023-04-18 05:57:59 -0600
committerSean Reifschneider <sean@realgo.com>2023-04-18 05:57:59 -0600
commit3c8465f96df7823ccb8b5872871d21c41a024fc0 (patch)
treed5a82c4bb197d4d8814b0b60c644550d00ffb815 /tests
parent88b83c6f8bfe056735cf026ad869b933ff8fb892 (diff)
downloadpython-memcached-3c8465f96df7823ccb8b5872871d21c41a024fc0.tar.gz
Allow keys to be encoded before use.
Ported patch in #52 from @harlowja to current branch. Added tests. For the cases where the user wants to transparently encode keys (say using urllib) before they are used further allow a encoding function to be passed in that will perform these types of activities (by default it is the identity function).
Diffstat (limited to 'tests')
-rw-r--r--tests/test_memcache.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/test_memcache.py b/tests/test_memcache.py
index 3593e03..2258d5a 100644
--- a/tests/test_memcache.py
+++ b/tests/test_memcache.py
@@ -252,5 +252,32 @@ class TestMemcache(unittest.TestCase):
)
+class TestMemcacheEncoder(unittest.TestCase):
+ def setUp(self):
+ # TODO(): unix socket server stuff
+ servers = ["127.0.0.1:11211"]
+ self.mc = Client(servers, debug=1, key_encoder=self.encoder)
+
+ def tearDown(self):
+ self.mc.flush_all()
+ self.mc.disconnect_all()
+
+ def encoder(self, key):
+ return key.lower()
+
+ def check_setget(self, key, val, noreply=False):
+ self.mc.set(key, val, noreply=noreply)
+ newval = self.mc.get(key)
+ self.assertEqual(newval, val)
+
+ def test_setget(self):
+ self.check_setget("a_string", "some random string")
+ self.check_setget("A_String2", "some random string")
+ self.check_setget("an_integer", 42)
+ self.assertEqual("some random string", self.mc.get("A_String"))
+ self.assertEqual("some random string", self.mc.get("a_sTRing2"))
+ self.assertEqual(42, self.mc.get("An_Integer"))
+
+
if __name__ == '__main__':
unittest.main()