]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Fix str2dict and dict2str's incorrect behavior
authorJianing Yang <jianingy@unitedstack.com>
Thu, 5 Dec 2013 09:34:31 +0000 (17:34 +0800)
committerJianing Yang <jianingy@unitedstack.com>
Fri, 6 Dec 2013 00:32:28 +0000 (08:32 +0800)
Closes-bug: #1258065

Change-Id: Idf14c077eeeda6f18f534ad8f62cd741d0c0a2eb

neutron/common/utils.py
neutron/tests/unit/test_common_utils.py

index e72fcee14f9e812bc64d2a9301e656b37f6860fe..5e8cab756f265146cba74c6e9b759c740cd398ab 100644 (file)
@@ -180,7 +180,7 @@ def dict2str(dic):
 
 def str2dict(string):
     res_dict = {}
-    for keyvalue in string.split(',', 1):
+    for keyvalue in string.split(','):
         (key, value) = keyvalue.split('=', 1)
         res_dict[key] = value
     return res_dict
index 364d3ed210de42eddf1d72b7d1f9e015797d727e..3ea9ff038918dc55987907bd7504841a00d84964 100644 (file)
@@ -287,3 +287,30 @@ class TestParseVlanRangeList(UtilTestParseVlanRanges):
                                       (1000, 1099)],
                              "net2": [(200, 299)]}
         self.assertEqual(self.parse_list(config_list), expected_networks)
+
+
+class TestDictUtils(base.BaseTestCase):
+    def test_dict2str(self):
+        dic = {"key1": "value1", "key2": "value2", "key3": "value3"}
+        expected = "key1=value1,key2=value2,key3=value3"
+        self.assertEqual(utils.dict2str(dic), expected)
+
+    def test_str2dict(self):
+        string = "key1=value1,key2=value2,key3=value3"
+        expected = {"key1": "value1", "key2": "value2", "key3": "value3"}
+        self.assertEqual(utils.str2dict(string), expected)
+
+    def test_dict_str_conversion(self):
+        dic = {"key1": "value1", "key2": "value2"}
+        self.assertEqual(utils.str2dict(utils.dict2str(dic)), dic)
+
+    def test_diff_list_of_dict(self):
+        old_list = [{"key1": "value1"},
+                    {"key2": "value2"},
+                    {"key3": "value3"}]
+        new_list = [{"key1": "value1"},
+                    {"key2": "value2"},
+                    {"key4": "value4"}]
+        added, removed = utils.diff_list_of_dict(old_list, new_list)
+        self.assertEqual(added, [dict(key4="value4")])
+        self.assertEqual(removed, [dict(key3="value3")])