summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSuhail Patel <me@suhailpatel.com>2016-09-19 15:48:56 +0100
committerSuhail Patel <me@suhailpatel.com>2016-09-19 15:48:56 +0100
commitc437bb98fe015bc3cfeb664254da9ab87720c894 (patch)
treebf5c77c6440ac04f364d1c618707610fe18f5887
parentfc2174da61596e012baed937bd3056d7223354de (diff)
downloadpymemcache-c437bb98fe015bc3cfeb664254da9ab87720c894.tar.gz
Add failing test of MockMemcacheClient serializer/deserializer
-rw-r--r--pymemcache/test/test_client.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/pymemcache/test/test_client.py b/pymemcache/test/test_client.py
index 24d6b9d..e6645aa 100644
--- a/pymemcache/test/test_client.py
+++ b/pymemcache/test/test_client.py
@@ -723,6 +723,41 @@ class TestMockClient(ClientTestMixin, unittest.TestCase):
client.sock = MockSocket(list(mock_socket_values))
return client
+ def test_get_found(self):
+ client = self.make_client([
+ b'STORED\r\n',
+ b'VALUE key 0 5\r\nvalue\r\nEND\r\n',
+ ])
+ result = client.set(b'key', b'value', noreply=False)
+ result = client.get(b'key')
+ assert result == b'value'
+
+ def test_deserialization(self):
+ def _serializer(key, value):
+ if isinstance(value, dict):
+ return json.dumps(value), 1
+ return value, 0
+
+ def _deserializer(key, value, flags):
+ if flags == 1:
+ return json.loads(value)
+ return value
+
+ client = self.make_client([
+ b'STORED\r\n',
+ b'VALUE key1 0 5\r\nhello\r\nEND\r\n',
+ b'STORED\r\n',
+ b'VALUE key2 0 18\r\n{"hello": "world"}\r\nEND\r\n',
+ ], serializer=_serializer, deserializer=_deserializer)
+
+ result = client.set(b'key1', 'hello', noreply=False)
+ result = client.get(b'key1')
+ assert result == 'hello'
+
+ result = client.set(b'key2', dict(hello='world'), noreply=False)
+ result = client.get(b'key2')
+ assert result == dict(hello='world')
+
class TestPrefixedClient(ClientTestMixin, unittest.TestCase):
def make_client(self, mock_socket_values, **kwargs):