[CalendarServer-changes] [1369] CalendarServer/trunk/twistedcaldav
source_changes at macosforge.org
source_changes at macosforge.org
Tue Mar 13 17:54:28 PDT 2007
Revision: 1369
http://trac.macosforge.org/projects/calendarserver/changeset/1369
Author: wsanchez at apple.com
Date: 2007-03-13 17:54:28 -0700 (Tue, 13 Mar 2007)
Log Message:
-----------
Merge config options instead of replacing them
Modified Paths:
--------------
CalendarServer/trunk/twistedcaldav/config.py
CalendarServer/trunk/twistedcaldav/test/test_config.py
Modified: CalendarServer/trunk/twistedcaldav/config.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/config.py 2007-03-14 00:20:04 UTC (rev 1368)
+++ CalendarServer/trunk/twistedcaldav/config.py 2007-03-14 00:54:28 UTC (rev 1369)
@@ -146,7 +146,16 @@
},
}
+def _mergeData(oldData, newData):
+ for key, value in newData.iteritems():
+ if isinstance(value, (dict,)):
+ assert isinstance(oldData.get(key, {}), (dict,))
+ oldData[key] = _mergeData(oldData.get(key, {}), value)
+ else:
+ oldData[key] = value
+ return oldData
+
class Config (object):
def __init__(self, defaults):
self._defaults = defaults
@@ -157,10 +166,10 @@
return str(self._data)
def update(self, items):
- self._data.update(items)
+ self._data = _mergeData(self._data, items)
def updateDefaults(self, items):
- self._defaults.update(items)
+ self._defaults = _mergeData(self._defaults, items)
self.update(items)
def __getattr__(self, attr):
Modified: CalendarServer/trunk/twistedcaldav/test/test_config.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/test/test_config.py 2007-03-14 00:20:04 UTC (rev 1368)
+++ CalendarServer/trunk/twistedcaldav/test/test_config.py 2007-03-14 00:54:28 UTC (rev 1369)
@@ -98,6 +98,11 @@
self.assertEquals(config.SSLPort, 8443)
+ def testMerge(self):
+ config.update({'MultiProcess': {}})
+
+ self.assertEquals(config.MultiProcess["LoadBalancer"]["Enabled"], True)
+
def testUpdateDefaults(self):
self.assertEquals(config.SSLPort, -1)
@@ -112,3 +117,8 @@
self.assertEquals(config.SSLPort, 8009)
config.updateDefaults({'SSLPort': -1})
+
+ def testMergeDefaults(self):
+ config.updateDefaults({'MultiProcess': {}})
+
+ self.assertEquals(config._defaults["MultiProcess"]["LoadBalancer"]["Enabled"], True)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20070313/9858f39f/attachment.html
More information about the calendarserver-changes
mailing list