Blob Blame History Raw
From c38568f026853f64f2669f03bd56441b007f13be Mon Sep 17 00:00:00 2001
From: gholt <z-launchpad@brim.net>
Date: Tue, 18 Sep 2012 18:24:47 +0000
Subject: [PATCH] Fix bug where serialization_format is ignored

Change-Id: I5a5ac8b5f18e077105ab12e9b1f0ccafac3983f7
---
 swift/common/middleware/memcache.py          |    2 ++
 test/unit/common/middleware/test_memcache.py |   12 ++++++++++--
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/swift/common/middleware/memcache.py b/swift/common/middleware/memcache.py
index 20121c9..06678c4 100644
--- a/swift/common/middleware/memcache.py
+++ b/swift/common/middleware/memcache.py
@@ -52,6 +52,8 @@ class MemcacheMiddleware(object):
             self.memcache_servers = '127.0.0.1:11211'
         if serialization_format is None:
             serialization_format = 0
+        else:
+            serialization_format = int(serialization_format)
 
         self.memcache = MemcacheRing(
             [s.strip() for s in self.memcache_servers.split(',') if s.strip()],
diff --git a/test/unit/common/middleware/test_memcache.py b/test/unit/common/middleware/test_memcache.py
index e217a96..28c7b13 100644
--- a/test/unit/common/middleware/test_memcache.py
+++ b/test/unit/common/middleware/test_memcache.py
@@ -48,7 +48,7 @@ class SetConfigParser(object):
             if option == 'memcache_servers':
                 return '1.2.3.4:5'
             elif option == 'memcache_serialization_support':
-                return '2'
+                return '1'
             else:
                 raise NoOptionError(option)
         else:
@@ -104,6 +104,8 @@ class TestCacheMiddleware(unittest.TestCase):
         finally:
             memcache.ConfigParser = orig_parser
         self.assertEquals(app.memcache_servers, '127.0.0.1:11211')
+        self.assertEquals(app.memcache._allow_pickle, True)
+        self.assertEquals(app.memcache._allow_unpickle, True)
 
     def test_conf_from_extra_conf(self):
         orig_parser = memcache.ConfigParser
@@ -113,16 +115,22 @@ class TestCacheMiddleware(unittest.TestCase):
         finally:
             memcache.ConfigParser = orig_parser
         self.assertEquals(app.memcache_servers, '1.2.3.4:5')
+        self.assertEquals(app.memcache._allow_pickle, False)
+        self.assertEquals(app.memcache._allow_unpickle, True)
 
     def test_conf_from_inline_conf(self):
         orig_parser = memcache.ConfigParser
         memcache.ConfigParser = SetConfigParser
         try:
             app = memcache.MemcacheMiddleware(
-                    FakeApp(), {'memcache_servers': '6.7.8.9:10'})
+                    FakeApp(),
+                    {'memcache_servers': '6.7.8.9:10',
+                     'serialization_format': '0'})
         finally:
             memcache.ConfigParser = orig_parser
         self.assertEquals(app.memcache_servers, '6.7.8.9:10')
+        self.assertEquals(app.memcache._allow_pickle, False)
+        self.assertEquals(app.memcache._allow_unpickle, True)
 
 
 if __name__ == '__main__':