jdahlin - r7314 - in flumotion/trunk: . flumotion/manager
flumotion/test
flumotion-commit at lists.fluendo.com
flumotion-commit at lists.fluendo.com
Thu Aug 28 18:11:29 CEST 2008
Author: jdahlin
Date: Thu Aug 28 18:11:29 2008
New Revision: 7314
Log:
2008-08-28 Johan Dahlin <johan at flumotion.com>
* flumotion/manager/config.py:
* flumotion/test/test_manager_config.py:
Make sure multiple config properties are serialized property.
Add a test.
Modified:
flumotion/trunk/ChangeLog
flumotion/trunk/flumotion/manager/config.py
flumotion/trunk/flumotion/test/test_manager_config.py
Modified: flumotion/trunk/ChangeLog
==============================================================================
--- flumotion/trunk/ChangeLog (original)
+++ flumotion/trunk/ChangeLog Thu Aug 28 18:11:29 2008
@@ -1,3 +1,10 @@
+2008-08-28 Johan Dahlin <johan at flumotion.com>
+
+ * flumotion/manager/config.py:
+ * flumotion/test/test_manager_config.py:
+ Make sure multiple config properties are serialized property.
+ Add a test.
+
2008-08-28 Murray Cumming <murrayc at murrayc.com>
* flumotion/component/consumers/disker/disker.glade: Start New File
Modified: flumotion/trunk/flumotion/manager/config.py
==============================================================================
--- flumotion/trunk/flumotion/manager/config.py (original)
+++ flumotion/trunk/flumotion/manager/config.py Thu Aug 28 18:11:29 2008
@@ -834,13 +834,19 @@
def serialise(propVal):
if isinstance(propVal, tuple): # fractions are our only tuple type
- return "%d/%d" % propVal
- return propVal
+ return ["%d/%d" % propVal]
+ elif isinstance(propVal, list):
+ return propVal
+ else:
+ return [propVal]
for name, value in properties:
attrs = [('name', name)]
- self.writeTag('property', attrs, serialise(value))
+ for value in serialise(value):
+ self.writeTag('property', attrs, value)
def _writePlugs(self, plugs):
+ if not plugs:
+ return
self.pushTag('plugs')
for socket, plugs in plugs:
for plug in plugs:
Modified: flumotion/trunk/flumotion/test/test_manager_config.py
==============================================================================
--- flumotion/trunk/flumotion/test/test_manager_config.py (original)
+++ flumotion/trunk/flumotion/test/test_manager_config.py Thu Aug 28 18:11:29 2008
@@ -24,7 +24,9 @@
from flumotion.common import testsuite
from flumotion.common.errors import ConfigError
from flumotion.manager.config import ConfigEntryComponent, \
- ConfigEntryManager, ManagerConfigParser, PlanetConfigParser
+ ConfigEntryManager, ManagerConfigParser, PlanetConfigParser, \
+ PlanetXMLWriter
+from flumotion.manager.manager import Vishnu
def flatten(seq):
@@ -213,3 +215,55 @@
'</component>')
config = PlanetConfigParser(f)
self.assertRaises(ConfigError, config.parse)
+
+
+class TestXMLWriter(testsuite.TestCase):
+
+ def testPlug(self):
+ xml = (
+ '<planet name="planet-name">\n'
+ ' \n'
+ ' <atmosphere>\n'
+ ' <component name="server"\n'
+ ' type="http-server"\n'
+ ' label="label"\n'
+ ' worker="worker"\n'
+ ' project="flumotion"\n'
+ ' version="1.0">\n'
+ ' <property name="type">slave</property>\n'
+ ' <plugs>\n'
+ ' <plug socket="flumotion.component.plugs.loggers.Logger" '
+ 'type="apachelogger">\n'
+ ' <property name="logfile">foobar</property>\n'
+ ' </plug>\n'
+ ' </plugs>\n'
+ ' </component>\n'
+ ' \n'
+ ' </atmosphere>\n'
+ ' \n'
+ '</planet>\n')
+ vishnu = Vishnu('planet-name')
+ vishnu.loadComponentConfigurationXML(StringIO(xml), 'foo')
+ testsuite.diffStrings(xml, vishnu.getConfiguration())
+
+ def testMultiple(self):
+ xml = (
+ '<planet name="planet-name">\n'
+ ' \n'
+ ' <atmosphere>\n'
+ ' <component name="bouncer"\n'
+ ' type="ip-bouncer"\n'
+ ' label="label"\n'
+ ' worker="worker"\n'
+ ' project="flumotion"\n'
+ ' version="1.0">\n'
+ ' <property name="allow">A</property>\n'
+ ' <property name="allow">B</property>\n'
+ ' </component>\n'
+ ' \n'
+ ' </atmosphere>\n'
+ ' \n'
+ '</planet>\n')
+ vishnu = Vishnu('planet-name')
+ vishnu.loadComponentConfigurationXML(StringIO(xml), 'foo')
+ testsuite.diffStrings(xml, vishnu.getConfiguration())
More information about the flumotion-commit
mailing list