eaf4a0f
From c38568f026853f64f2669f03bd56441b007f13be Mon Sep 17 00:00:00 2001
eaf4a0f
From: gholt <z-launchpad@brim.net>
eaf4a0f
Date: Tue, 18 Sep 2012 18:24:47 +0000
eaf4a0f
Subject: [PATCH] Fix bug where serialization_format is ignored
eaf4a0f
eaf4a0f
Change-Id: I5a5ac8b5f18e077105ab12e9b1f0ccafac3983f7
eaf4a0f
---
eaf4a0f
 swift/common/middleware/memcache.py          |    2 ++
eaf4a0f
 test/unit/common/middleware/test_memcache.py |   12 ++++++++++--
eaf4a0f
 2 files changed, 12 insertions(+), 2 deletions(-)
eaf4a0f
eaf4a0f
diff --git a/swift/common/middleware/memcache.py b/swift/common/middleware/memcache.py
eaf4a0f
index 20121c9..06678c4 100644
eaf4a0f
--- a/swift/common/middleware/memcache.py
eaf4a0f
+++ b/swift/common/middleware/memcache.py
eaf4a0f
@@ -52,6 +52,8 @@ class MemcacheMiddleware(object):
eaf4a0f
             self.memcache_servers = '127.0.0.1:11211'
eaf4a0f
         if serialization_format is None:
eaf4a0f
             serialization_format = 0
eaf4a0f
+        else:
eaf4a0f
+            serialization_format = int(serialization_format)
eaf4a0f
 
eaf4a0f
         self.memcache = MemcacheRing(
eaf4a0f
             [s.strip() for s in self.memcache_servers.split(',') if s.strip()],
eaf4a0f
diff --git a/test/unit/common/middleware/test_memcache.py b/test/unit/common/middleware/test_memcache.py
eaf4a0f
index e217a96..28c7b13 100644
eaf4a0f
--- a/test/unit/common/middleware/test_memcache.py
eaf4a0f
+++ b/test/unit/common/middleware/test_memcache.py
eaf4a0f
@@ -48,7 +48,7 @@ class SetConfigParser(object):
eaf4a0f
             if option == 'memcache_servers':
eaf4a0f
                 return '1.2.3.4:5'
eaf4a0f
             elif option == 'memcache_serialization_support':
eaf4a0f
-                return '2'
eaf4a0f
+                return '1'
eaf4a0f
             else:
eaf4a0f
                 raise NoOptionError(option)
eaf4a0f
         else:
eaf4a0f
@@ -104,6 +104,8 @@ class TestCacheMiddleware(unittest.TestCase):
eaf4a0f
         finally:
eaf4a0f
             memcache.ConfigParser = orig_parser
eaf4a0f
         self.assertEquals(app.memcache_servers, '127.0.0.1:11211')
eaf4a0f
+        self.assertEquals(app.memcache._allow_pickle, True)
eaf4a0f
+        self.assertEquals(app.memcache._allow_unpickle, True)
eaf4a0f
 
eaf4a0f
     def test_conf_from_extra_conf(self):
eaf4a0f
         orig_parser = memcache.ConfigParser
eaf4a0f
@@ -113,16 +115,22 @@ class TestCacheMiddleware(unittest.TestCase):
eaf4a0f
         finally:
eaf4a0f
             memcache.ConfigParser = orig_parser
eaf4a0f
         self.assertEquals(app.memcache_servers, '1.2.3.4:5')
eaf4a0f
+        self.assertEquals(app.memcache._allow_pickle, False)
eaf4a0f
+        self.assertEquals(app.memcache._allow_unpickle, True)
eaf4a0f
 
eaf4a0f
     def test_conf_from_inline_conf(self):
eaf4a0f
         orig_parser = memcache.ConfigParser
eaf4a0f
         memcache.ConfigParser = SetConfigParser
eaf4a0f
         try:
eaf4a0f
             app = memcache.MemcacheMiddleware(
eaf4a0f
-                    FakeApp(), {'memcache_servers': '6.7.8.9:10'})
eaf4a0f
+                    FakeApp(),
eaf4a0f
+                    {'memcache_servers': '6.7.8.9:10',
eaf4a0f
+                     'serialization_format': '0'})
eaf4a0f
         finally:
eaf4a0f
             memcache.ConfigParser = orig_parser
eaf4a0f
         self.assertEquals(app.memcache_servers, '6.7.8.9:10')
eaf4a0f
+        self.assertEquals(app.memcache._allow_pickle, False)
eaf4a0f
+        self.assertEquals(app.memcache._allow_unpickle, True)
eaf4a0f
 
eaf4a0f
 
eaf4a0f
 if __name__ == '__main__':