diff options
author | Suhail Patel <me@suhailpatel.com> | 2016-09-19 15:48:56 +0100 |
---|---|---|
committer | Suhail Patel <me@suhailpatel.com> | 2016-09-19 15:48:56 +0100 |
commit | c437bb98fe015bc3cfeb664254da9ab87720c894 (patch) | |
tree | bf5c77c6440ac04f364d1c618707610fe18f5887 | |
parent | fc2174da61596e012baed937bd3056d7223354de (diff) | |
download | pymemcache-c437bb98fe015bc3cfeb664254da9ab87720c894.tar.gz |
Add failing test of MockMemcacheClient serializer/deserializer
-rw-r--r-- | pymemcache/test/test_client.py | 35 |
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): |