summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfuzzyman <devnull@localhost>2010-02-27 18:06:01 +0000
committerfuzzyman <devnull@localhost>2010-02-27 18:06:01 +0000
commit1c026e33f66be248ae380d7f7501e0216d5fb9d3 (patch)
tree2696f43ab01df748c0ec9abbdaa16108b5f747cf
parentffef79b899f76d930624ce0ebf628db6cb0b7f88 (diff)
downloadconfigobj-1c026e33f66be248ae380d7f7501e0216d5fb9d3.tar.gz
New tests for bugs in 4.7.1
-rw-r--r--configobj.py4
-rw-r--r--functionaltests/test_configobj.py16
2 files changed, 18 insertions, 2 deletions
diff --git a/configobj.py b/configobj.py
index 90fad5b..6dcb554 100644
--- a/configobj.py
+++ b/configobj.py
@@ -573,7 +573,9 @@ class Section(dict):
if isinstance(entry, basestring):
return self._interpolate(key, entry)
return entry
- return [_check(entry) for entry in val]
+ new = [_check(entry) for entry in val]
+ if new != val:
+ return new
return val
diff --git a/functionaltests/test_configobj.py b/functionaltests/test_configobj.py
index 9a6782c..73ecf25 100644
--- a/functionaltests/test_configobj.py
+++ b/functionaltests/test_configobj.py
@@ -39,4 +39,18 @@ class TestConfigObj(unittest.TestCase):
# unpack the only member of log
warning, = log
- self.assertEqual(warning.category, DeprecationWarning) \ No newline at end of file
+ self.assertEqual(warning.category, DeprecationWarning)
+
+ def test_list_members(self):
+ c = ConfigObj()
+ c['a'] = []
+ c['a'].append('foo')
+ self.assertEqual(c['a'], ['foo'])
+
+ def test_list_interpolation_with_pop(self):
+ c = ConfigObj()
+ c['a'] = []
+ c['a'].append('%(b)s')
+ c['b'] = 'bar'
+ self.assertEqual(c.pop('a'), ['bar'])
+