jdahlin - in flumotion/trunk: . flumotion/common flumotion/test flumotion/wizard

flumotion-commit at lists.fluendo.com flumotion-commit at lists.fluendo.com
Mon Apr 28 17:40:41 CEST 2008


Author: jdahlin
Date: Mon Apr 28 17:40:41 2008
New Revision: 6580

Log:
2008-04-28  Johan Dahlin  <johan at flumotion.com>

    * flumotion/common/xmlwriter.py:
    * flumotion/test/test_wizard_save.py:
    * flumotion/wizard/configurationwriter.py:
    Update xmlwriter from gobject-introspection copy, it
    can line write attributes properly.
    Update tests and change callsite slightly.



Modified:
   flumotion/trunk/ChangeLog
   flumotion/trunk/flumotion/common/xmlwriter.py
   flumotion/trunk/flumotion/test/test_wizard_save.py
   flumotion/trunk/flumotion/wizard/configurationwriter.py

Modified: flumotion/trunk/ChangeLog
==============================================================================
--- flumotion/trunk/ChangeLog	(original)
+++ flumotion/trunk/ChangeLog	Mon Apr 28 17:40:41 2008
@@ -1,6 +1,15 @@
 2008-04-28  Johan Dahlin  <johan at flumotion.com>
 
 	* flumotion/common/xmlwriter.py:
+	* flumotion/test/test_wizard_save.py:
+	* flumotion/wizard/configurationwriter.py:
+	Update xmlwriter from gobject-introspection copy, it
+	can line write attributes properly.
+	Update tests and change callsite slightly.
+
+2008-04-28  Johan Dahlin  <johan at flumotion.com>
+
+	* flumotion/common/xmlwriter.py:
 	* flumotion/wizard/configurationwriter.py:
 	Move xmlwriter out of the wizard.
 

Modified: flumotion/trunk/flumotion/common/xmlwriter.py
==============================================================================
--- flumotion/trunk/flumotion/common/xmlwriter.py	(original)
+++ flumotion/trunk/flumotion/common/xmlwriter.py	Mon Apr 28 17:40:41 2008
@@ -30,19 +30,41 @@
         self._data = StringIO()
         self._tagStack = []
         self._indent = 0
+        self._indentChar = ' '
+        self._indentUnit = 2
 
     # Private
 
-    def _collectAttributes(self, attributes):
+    def _calcAttrsLength(self, attributes, indent):
+        if indent == -1:
+            return -1
+        attrLength = 0
+        for attr, value in attributes:
+            attrLength += 1 + len(attr) + len(quoteattr(value))
+        return attrLength + indent
+
+    def _collectAttributes(self, attributes, indent=-1):
+        if not attributes:
+            return ''
+
+        if self._calcAttrsLength(attributes, indent) > 79:
+            indentLen = self._indent + indent
+        else:
+            indentLen = 0
+        first = True
         attrValue = ''
-        if attributes:
-            for attr, value in attributes:
-                assert value is not None, attr
-                attrValue += ' %s=%s' % (attr, quoteattr(value))
+        for attr, value in attributes:
+            if indentLen and not first:
+                attrValue += '\n%s' % (self._indentChar * indentLen)
+            assert value is not None, attr
+            attrValue += ' %s=%s' % (attr, quoteattr(value))
+            if first:
+                first = False
         return attrValue
 
     def _openTag(self, tagName, attributes=None):
-        attrs = self._collectAttributes(attributes)
+        attrs = self._collectAttributes(
+            attributes, len(tagName) + 1)
         self.writeLine('<%s%s>' % (tagName, attrs))
 
     def _closeTag(self, tagName):
@@ -61,19 +83,24 @@
         """Write a line to the xml.
         This method honors the current indentation.
         """
-        self._data.write('%s%s\n' % (' ' * self._indent, line))
+        self._data.write('%s%s\n' % (self._indentChar * self._indent, line))
 
-    def writeTagWithData(self, tagName, data, attributes=None):
+    def writeTag(self, tagName, attributes=None, data=None):
         """Writes out and closes a tag. Optionally writes data as a child node.
         @param tagName: name of the tag
-        @param data: data or None
         @param attributes: attributes or None
+        @param data: data or None
         """
-        attrs = self._collectAttributes(attributes)
-        if data is None:
-            self.writeLine('<%s%s/>' % (tagName, attrs))
+        if attributes is None:
+            attributes = []
+        prefix = '<%s' % (tagName,)
+        if data is not None:
+            suffix = '>%s</%s>' % (data, tagName)
         else:
-            self.writeLine('<%s%s>%s</%s>' % (tagName, attrs, data, tagName))
+            suffix = '/>'
+        attrs = self._collectAttributes(
+            attributes, len(prefix) + len(suffix))
+        self.writeLine(prefix + attrs + suffix)
 
     def pushTag(self, tagName, attributes=None):
         """Push a tag::
@@ -86,13 +113,13 @@
         """
         self._openTag(tagName, attributes)
         self._tagStack.append(tagName)
-        self._indent += 2
+        self._indent += self._indentUnit
 
     def popTag(self):
         """Decreases the indentation and closes the previously opened tag.
         @returns: name of the closed tag
         """
-        self._indent -= 2
+        self._indent -= self._indentUnit
         tagName = self._tagStack.pop()
         self._closeTag(tagName)
         return tagName

Modified: flumotion/trunk/flumotion/test/test_wizard_save.py
==============================================================================
--- flumotion/trunk/flumotion/test/test_wizard_save.py	(original)
+++ flumotion/trunk/flumotion/test/test_wizard_save.py	Mon Apr 28 17:40:41 2008
@@ -61,8 +61,11 @@
         testsuite.diffStrings(
             ('<planet>\n'
              '  <flow name="flow">\n'
-             '    <component name="name" type="streamer" '
-             'project="flumotion" worker="worker" version="%(version)s">\n'
+             '    <component name="name"\n'
+             '               type="streamer"\n'
+             '               project="flumotion"\n'
+             '               worker="worker"\n'
+             '               version="%(version)s">\n'
              '    </component>\n'
              '  </flow>\n'
              '</planet>\n' % dict(version=configure.version)),
@@ -78,8 +81,11 @@
         testsuite.diffStrings(
             ('<planet>\n'
              '  <atmosphere>\n'
-             '    <component name="name" type="streamer" '
-             'project="flumotion" worker="worker" version="%(version)s">\n'
+             '    <component name="name"\n'
+             '               type="streamer"\n'
+             '               project="flumotion"\n'
+             '               worker="worker"\n'
+             '               version="%(version)s">\n'
              '      \n'
              '      <property name="foo">bar</property>\n'
              '    </component>\n'
@@ -100,8 +106,11 @@
         testsuite.diffStrings(
             ('<planet>\n'
              '  <flow name="flow">\n'
-             '    <component name="name" type="streamer" '
-             'project="flumotion" worker="worker" version="%(version)s">\n'
+             '    <component name="name"\n'
+             '               type="streamer"\n'
+             '               project="flumotion"\n'
+             '               worker="worker"\n'
+             '               version="%(version)s">\n'
              '      \n'
              '      <plugs>\n'
              '        <plug type="plug-type">\n'
@@ -129,14 +138,20 @@
         testsuite.diffStrings(
             ('<planet>\n'
              '  <flow name="flow">\n'
-             '    <component name="name" type="first" '
-             'project="flumotion" worker="worker" version="%(version)s">\n'
+             '    <component name="name"\n'
+             '               type="first"\n'
+             '               project="flumotion"\n'
+             '               worker="worker"\n'
+             '               version="%(version)s">\n'
              '      <eater name="default">\n'
              '        <feed>name</feed>\n'
              '      </eater>\n'
              '    </component>\n'
-             '    <component name="name" type="second" '
-             'project="flumotion" worker="worker" version="%(version)s">\n'
+             '    <component name="name"\n'
+             '               type="second"\n'
+             '               project="flumotion"\n'
+             '               worker="worker"\n'
+             '               version="%(version)s">\n'
              '    </component>\n'
              '  </flow>\n'
              '</planet>\n' % dict(version=configure.version)),
@@ -221,13 +236,19 @@
         testsuite.diffStrings(
             ('<planet>\n'
              '  <atmosphere>\n'
-             '    <component name="http-server-audio-video" type="http-server" '
-             'project="flumotion" worker="server-worker" version="%(version)s">\n'
+             '    <component name="http-server-audio-video"\n'
+             '               type="http-server"\n'
+             '               project="flumotion"\n'
+             '               worker="server-worker"\n'
+             '               version="%(version)s">\n'
              '      \n'
              '      <property name="mount-point">/mount/</property>\n'
              '    </component>\n'
-             '    <component name="porter-audio-video" type="porter" '
-             'project="flumotion" worker="streamer-worker" version="%(version)s">\n'
+             '    <component name="porter-audio-video"\n'
+             '               type="porter"\n'
+             '               project="flumotion"\n'
+             '               worker="streamer-worker"\n'
+             '               version="%(version)s">\n'
              '      \n'
              '      <property name="password">password</property>\n'
              '      <property name="port">8080</property>\n'
@@ -236,8 +257,11 @@
              '    </component>\n'
              '  </atmosphere>\n'
              '  <flow name="flow">\n'
-             '    <component name="http-audio-video" type="http-streamer" '
-             'project="flumotion" worker="streamer-worker" version="%(version)s">\n'
+             '    <component name="http-audio-video"\n'
+             '               type="http-streamer"\n'
+             '               project="flumotion"\n'
+             '               worker="streamer-worker"\n'
+             '               version="%(version)s">\n'
              '      <eater name="default">\n'
              '        <feed>muxer-audio-video</feed>\n'
              '      </eater>\n'
@@ -245,29 +269,44 @@
              '      <property name="burst-on-connect">False</property>\n'
              '      <property name="port">8080</property>\n'
              '    </component>\n'
-             '    <component name="producer-audio" type="audio-producer" '
-             'project="flumotion" worker="audio-producer-worker" version="%(version)s">\n'
-             '    </component>\n'
-             '    <component name="encoder-audio" type="audio-encoder" '
-             'project="flumotion" worker="audio-encoder-worker" version="%(version)s">\n'
+             '    <component name="producer-audio"\n'
+             '               type="audio-producer"\n'
+             '               project="flumotion"\n'
+             '               worker="audio-producer-worker"\n'
+             '               version="%(version)s">\n'
+             '    </component>\n'
+             '    <component name="encoder-audio"\n'
+             '               type="audio-encoder"\n'
+             '               project="flumotion"\n'
+             '               worker="audio-encoder-worker"\n'
+             '               version="%(version)s">\n'
              '      <eater name="default">\n'
              '        <feed>producer-audio</feed>\n'
              '      </eater>\n'
              '    </component>\n'
-             '    <component name="producer-video" type="video-producer" '
-             'project="flumotion" worker="video-producer-worker" version="%(version)s">\n'
+             '    <component name="producer-video"\n'
+             '               type="video-producer"\n'
+             '               project="flumotion"\n'
+             '               worker="video-producer-worker"\n'
+             '               version="%(version)s">\n'
              '      \n'
              '      <property name="height">480</property>\n'
              '      <property name="width">640</property>\n'
              '    </component>\n'
-             '    <component name="encoder-video" type="video-encoder" '
-             'project="flumotion" worker="video-encoder-worker" version="%(version)s">\n'
+             '    <component name="encoder-video"\n'
+             '               type="video-encoder"\n'
+             '               project="flumotion"\n'
+             '               worker="video-encoder-worker"\n'
+             '               version="%(version)s">\n'
              '      <eater name="default">\n'
              '        <feed>overlay-video</feed>\n'
              '      </eater>\n'
              '    </component>\n'
-             '    <component name="overlay-video" type="overlay-converter" '
-             'project="flumotion" worker="overlay-worker" version="%(version)s">\n'
+             '    <component name="overlay-video"\n'
+             '               type="overlay-converter"\n'
+             '               project="flumotion"\n'
+             '               worker="overlay-worker"\n'
+             '               version="%(version)s">\n'
              '      <eater name="default">\n'
              '        <feed>producer-video</feed>\n'
              '      </eater>\n'
@@ -279,8 +318,11 @@
              '      <property name="text">Fluendo</property>\n'
              '      <property name="width">640</property>\n'
              '    </component>\n'
-             '    <component name="muxer-audio-video" type="default-muxer" '
-             'project="flumotion" worker="muxer-worker" version="%(version)s">\n'
+             '    <component name="muxer-audio-video"\n'
+             '               type="default-muxer"\n'
+             '               project="flumotion"\n'
+             '               worker="muxer-worker"\n'
+             '               version="%(version)s">\n'
              '      <eater name="default">\n'
              '        <feed>encoder-audio</feed>\n'
              '        <feed>encoder-video</feed>\n'
@@ -308,20 +350,29 @@
         testsuite.diffStrings(
             ('<planet>\n'
              '  <flow name="flow">\n'
-             '    <component name="encoder-audio" type="audio-encoder" '
-             'project="flumotion" worker="audio-encoder-worker" version="%(version)s">\n'
+             '    <component name="encoder-audio"\n'
+             '               type="audio-encoder"\n'
+             '               project="flumotion"\n'
+             '               worker="audio-encoder-worker"\n'
+             '               version="%(version)s">\n'
              '      <eater name="default">\n'
              '        <feed>producer-audio-video</feed>\n'
              '      </eater>\n'
              '    </component>\n'
-             '    <component name="producer-audio-video" type="both-producer" '
-             'project="flumotion" worker="both-producer-worker" version="%(version)s">\n'
+             '    <component name="producer-audio-video"\n'
+             '               type="both-producer"\n'
+             '               project="flumotion"\n'
+             '               worker="both-producer-worker"\n'
+             '               version="%(version)s">\n'
              '      \n'
              '      <property name="height">480</property>\n'
              '      <property name="width">640</property>\n'
              '    </component>\n'
-             '    <component name="encoder-video" type="video-encoder" '
-             'project="flumotion" worker="video-encoder-worker" version="%(version)s">\n'
+             '    <component name="encoder-video"\n'
+             '               type="video-encoder"\n'
+             '               project="flumotion"\n'
+             '               worker="video-encoder-worker"\n'
+             '               version="%(version)s">\n'
              '      <eater name="default">\n'
              '        <feed>producer-audio-video</feed>\n'
              '      </eater>\n'
@@ -362,7 +413,11 @@
         testsuite.diffStrings(
             ('<planet>\n'
              '  <flow name="flow">\n'
-             '    <component name="http-audio-video" type="http-streamer" project="flumotion" worker="worker" version="%(version)s">\n'
+             '    <component name="http-audio-video"\n'
+             '               type="http-streamer"\n'
+             '               project="flumotion"\n'
+             '               worker="worker"\n'
+             '               version="%(version)s">\n'
              '      <eater name="default">\n'
              '        <feed>muxer-audio-video</feed>\n'
              '      </eater>\n'
@@ -370,25 +425,41 @@
              '      <property name="burst-on-connect">False</property>\n'
              '      <property name="port">8080</property>\n'
              '    </component>\n'
-             '    <component name="producer-audio" type="audiotest-producer" project="flumotion" worker="worker" version="%(version)s">\n'
+             '    <component name="producer-audio"\n'
+             '               type="audiotest-producer"\n'
+             '               project="flumotion"\n'
+             '               worker="worker"\n'
+             '               version="%(version)s">\n'
              '      \n'
              '      <property name="rate">44100</property>\n'
              '    </component>\n'
-             '    <component name="encoder-audio" type="vorbis-encoder" project="flumotion" worker="worker" version="%(version)s">\n'
+             '    <component name="encoder-audio"\n'
+             '               type="vorbis-encoder"\n'
+             '               project="flumotion"\n'
+             '               worker="worker"\n'
+             '               version="%(version)s">\n'
              '      <eater name="default">\n'
              '        <feed>producer-audio</feed>\n'
              '      </eater>\n'
              '      \n'
              '      <property name="bitrate">64000</property>\n'
              '    </component>\n'
-             '    <component name="producer-video" type="videotest-producer" project="flumotion" worker="worker" version="%(version)s">\n'
+             '    <component name="producer-video"\n'
+             '               type="videotest-producer"\n'
+             '               project="flumotion"\n'
+             '               worker="worker"\n'
+             '               version="%(version)s">\n'
              '      \n'
              '      <property name="format">video/x-raw-yuv</property>\n'
              '      <property name="height">240</property>\n'
              '      <property name="pattern">0</property>\n'
              '      <property name="width">320</property>\n'
              '    </component>\n'
-             '    <component name="encoder-video" type="theora-encoder" project="flumotion" worker="worker" version="%(version)s">\n'
+             '    <component name="encoder-video"\n'
+             '               type="theora-encoder"\n'
+             '               project="flumotion"\n'
+             '               worker="worker"\n'
+             '               version="%(version)s">\n'
              '      <eater name="default">\n'
              '        <feed>overlay-video</feed>\n'
              '      </eater>\n'
@@ -398,7 +469,11 @@
              '      <property name="quality">16</property>\n'
              '      <property name="sharpness">0</property>\n'
              '    </component>\n'
-             '    <component name="overlay-video" type="overlay-converter" project="flumotion" worker="overlay-worker" version="%(version)s">\n'
+             '    <component name="overlay-video"\n'
+             '               type="overlay-converter"\n'
+             '               project="flumotion"\n'
+             '               worker="overlay-worker"\n'
+             '               version="%(version)s">\n'
              '      <eater name="default">\n'
              '        <feed>producer-video</feed>\n'
              '      </eater>\n'
@@ -410,7 +485,11 @@
              '      <property name="width">320</property>\n'
              '      <property name="xiph-logo">True</property>\n'
              '    </component>\n'
-             '    <component name="muxer-audio-video" type="ogg-muxer" project="flumotion" worker="muxer-worker" version="%(version)s">\n'
+             '    <component name="muxer-audio-video"\n'
+             '               type="ogg-muxer"\n'
+             '               project="flumotion"\n'
+             '               worker="muxer-worker"\n'
+             '               version="%(version)s">\n'
              '      <eater name="default">\n'
              '        <feed>encoder-audio</feed>\n'
              '        <feed>encoder-video</feed>\n'
@@ -446,7 +525,11 @@
         testsuite.diffStrings(
             ('<planet>\n'
              '  <flow name="flow">\n'
-             '    <component name="http-audio-only" type="http-streamer" project="flumotion" worker="worker" version="%(version)s">\n'
+             '    <component name="http-audio-only"\n'
+             '               type="http-streamer"\n'
+             '               project="flumotion"\n'
+             '               worker="worker"\n'
+             '               version="%(version)s">\n'
              '      <eater name="default">\n'
              '        <feed>muxer-audio-only</feed>\n'
              '      </eater>\n'
@@ -454,11 +537,19 @@
              '      <property name="burst-on-connect">False</property>\n'
              '      <property name="port">8080</property>\n'
              '    </component>\n'
-             '    <component name="producer-audio" type="audiotest-producer" project="flumotion" worker="worker" version="%(version)s">\n'
+             '    <component name="producer-audio"\n'
+             '               type="audiotest-producer"\n'
+             '               project="flumotion"\n'
+             '               worker="worker"\n'
+             '               version="%(version)s">\n'
              '      \n'
              '      <property name="rate">44100</property>\n'
              '    </component>\n'
-             '    <component name="encoder-audio" type="vorbis-encoder" project="flumotion" worker="worker" version="%(version)s">\n'
+             '    <component name="encoder-audio"\n'
+             '               type="vorbis-encoder"\n'
+             '               project="flumotion"\n'
+             '               worker="worker"\n'
+             '               version="%(version)s">\n'
              '      <eater name="default">\n'
              '        <feed>producer-audio</feed>\n'
              '      </eater>\n'
@@ -498,13 +589,19 @@
         testsuite.diffStrings(
             ('<planet>\n'
              '  <atmosphere>\n'
-             '    <component name="http-server-audio-video" type="http-server" '
-             'project="flumotion" worker="server-worker" version="%(version)s">\n'
+             '    <component name="http-server-audio-video"\n'
+             '               type="http-server"\n'
+             '               project="flumotion"\n'
+             '               worker="server-worker"\n'
+             '               version="%(version)s">\n'
              '      \n'
              '      <property name="mount-point">/mount/</property>\n'
              '    </component>\n'
-             '    <component name="porter-audio-video" type="porter" '
-             'project="flumotion" worker="streamer-worker" version="%(version)s">\n'
+             '    <component name="porter-audio-video"\n'
+             '               type="porter"\n'
+             '               project="flumotion"\n'
+             '               worker="streamer-worker"\n'
+             '               version="%(version)s">\n'
              '      \n'
              '      <property name="password">password</property>\n'
              '      <property name="port">8080</property>\n'
@@ -513,8 +610,11 @@
              '    </component>\n'
              '  </atmosphere>\n'
              '  <flow name="flow">\n'
-             '    <component name="http-audio-video" type="http-streamer" '
-             'project="flumotion" worker="streamer-worker" version="%(version)s">\n'
+             '    <component name="http-audio-video"\n'
+             '               type="http-streamer"\n'
+             '               project="flumotion"\n'
+             '               worker="streamer-worker"\n'
+             '               version="%(version)s">\n'
              '      <eater name="default">\n'
              '        <feed>muxer-audio-video</feed>\n'
              '      </eater>\n'
@@ -522,28 +622,39 @@
              '      <property name="burst-on-connect">False</property>\n'
              '      <property name="port">8080</property>\n'
              '    </component>\n'
-             '    <component name="encoder-audio" type="audio-encoder" '
-             'project="flumotion" worker="audio-encoder-worker" version="%(version)s">\n'
+             '    <component name="encoder-audio"\n'
+             '               type="audio-encoder"\n'
+             '               project="flumotion"\n'
+             '               worker="audio-encoder-worker"\n'
+             '               version="%(version)s">\n'
              '      <eater name="default">\n'
              '        <feed>producer-audio-video:audio</feed>\n'
              '      </eater>\n'
              '    </component>\n'
-             '    <component name="producer-audio-video" '
-             'type="firewire-producer" project="flumotion" '
-             'worker="firewire-video-producer-worker" version="%(version)s">\n'
+             '    <component name="producer-audio-video"\n'
+             '               type="firewire-producer"\n'
+             '               project="flumotion"\n'
+             '               worker="firewire-video-producer-worker"\n'
+             '               version="%(version)s">\n'
              '      \n'
              '      <property name="height">480</property>\n'
              '      <property name="is-square">False</property>\n'
              '      <property name="width">640</property>\n'
              '    </component>\n'
-             '    <component name="encoder-video" type="video-encoder" '
-             'project="flumotion" worker="video-encoder-worker" version="%(version)s">\n'
+             '    <component name="encoder-video"\n'
+             '               type="video-encoder"\n'
+             '               project="flumotion"\n'
+             '               worker="video-encoder-worker"\n'
+             '               version="%(version)s">\n'
              '      <eater name="default">\n'
              '        <feed>overlay-video</feed>\n'
              '      </eater>\n'
              '    </component>\n'
-             '    <component name="overlay-video" type="overlay-converter" '
-             'project="flumotion" worker="overlay-worker" version="%(version)s">\n'
+             '    <component name="overlay-video"\n'
+             '               type="overlay-converter"\n'
+             '               project="flumotion"\n'
+             '               worker="overlay-worker"\n'
+             '               version="%(version)s">\n'
              '      <eater name="default">\n'
              '        <feed>producer-audio-video:video</feed>\n'
              '      </eater>\n'
@@ -555,8 +666,11 @@
              '      <property name="text">Fluendo</property>\n'
              '      <property name="width">640</property>\n'
              '    </component>\n'
-             '    <component name="muxer-audio-video" type="default-muxer" '
-             'project="flumotion" worker="muxer-worker" version="%(version)s">\n'
+             '    <component name="muxer-audio-video"\n'
+             '               type="default-muxer"\n'
+             '               project="flumotion"\n'
+             '               worker="muxer-worker"\n'
+             '               version="%(version)s">\n'
              '      <eater name="default">\n'
              '        <feed>encoder-audio</feed>\n'
              '        <feed>encoder-video</feed>\n'
@@ -600,13 +714,19 @@
         testsuite.diffStrings(
             ('<planet>\n'
              '  <atmosphere>\n'
-             '    <component name="http-server-audio-video" type="http-server" '
-             'project="flumotion" worker="server-worker" version="%(version)s">\n'
+             '    <component name="http-server-audio-video"\n'
+             '               type="http-server"\n'
+             '               project="flumotion"\n'
+             '               worker="server-worker"\n'
+             '               version="%(version)s">\n'
              '      \n'
              '      <property name="mount-point">/mount/</property>\n'
              '    </component>\n'
-             '    <component name="porter-audio-video" type="porter" '
-             'project="flumotion" worker="streamer-worker" version="%(version)s">\n'
+             '    <component name="porter-audio-video"\n'
+             '               type="porter"\n'
+             '               project="flumotion"\n'
+             '               worker="streamer-worker"\n'
+             '               version="%(version)s">\n'
              '      \n'
              '      <property name="password">password</property>\n'
              '      <property name="port">8080</property>\n'
@@ -615,8 +735,11 @@
              '    </component>\n'
              '  </atmosphere>\n'
              '  <flow name="flow">\n'
-             '    <component name="http-audio-video" type="http-streamer" '
-             'project="flumotion" worker="streamer-worker" version="%(version)s">\n'
+             '    <component name="http-audio-video"\n'
+             '               type="http-streamer"\n'
+             '               project="flumotion"\n'
+             '               worker="streamer-worker"\n'
+             '               version="%(version)s">\n'
              '      <eater name="default">\n'
              '        <feed>muxer-audio-video</feed>\n'
              '      </eater>\n'
@@ -624,36 +747,49 @@
              '      <property name="burst-on-connect">False</property>\n'
              '      <property name="port">8080</property>\n'
              '    </component>\n'
-             '    <component name="producer-audio" '
-             'type="firewire-producer" project="flumotion" '
-             'worker="audio-worker" version="%(version)s">\n'
+             '    <component name="producer-audio"\n'
+             '               type="firewire-producer"\n'
+             '               project="flumotion"\n'
+             '               worker="audio-worker"\n'
+             '               version="%(version)s">\n'
              '      \n'
              '      <property name="height">480</property>\n'
              '      <property name="is-square">False</property>\n'
              '      <property name="width">640</property>\n'
              '    </component>\n'
-             '    <component name="encoder-audio" type="audio-encoder" '
-             'project="flumotion" worker="audio-encoder-worker" version="%(version)s">\n'
+             '    <component name="encoder-audio"\n'
+             '               type="audio-encoder"\n'
+             '               project="flumotion"\n'
+             '               worker="audio-encoder-worker"\n'
+             '               version="%(version)s">\n'
              '      <eater name="default">\n'
              '        <feed>producer-audio:audio</feed>\n'
              '      </eater>\n'
              '    </component>\n'
-             '    <component name="producer-video" '
-             'type="firewire-producer" project="flumotion" '
-             'worker="video-worker" version="%(version)s">\n'
+             '    <component name="producer-video"\n'
+             '               type="firewire-producer"\n'
+             '               project="flumotion"\n'
+             '               worker="video-worker"\n'
+             '               version="%(version)s">\n'
              '      \n'
              '      <property name="height">480</property>\n'
              '      <property name="is-square">False</property>\n'
              '      <property name="width">640</property>\n'
              '    </component>\n'
-             '    <component name="encoder-video" type="video-encoder" '
-             'project="flumotion" worker="video-encoder-worker" version="%(version)s">\n'
+             '    <component name="encoder-video"\n'
+             '               type="video-encoder"\n'
+             '               project="flumotion"\n'
+             '               worker="video-encoder-worker"\n'
+             '               version="%(version)s">\n'
              '      <eater name="default">\n'
              '        <feed>overlay-video</feed>\n'
              '      </eater>\n'
              '    </component>\n'
-             '    <component name="overlay-video" type="overlay-converter" '
-             'project="flumotion" worker="overlay-worker" version="%(version)s">\n'
+             '    <component name="overlay-video"\n'
+             '               type="overlay-converter"\n'
+             '               project="flumotion"\n'
+             '               worker="overlay-worker"\n'
+             '               version="%(version)s">\n'
              '      <eater name="default">\n'
              '        <feed>producer-video:video</feed>\n'
              '      </eater>\n'
@@ -665,8 +801,11 @@
              '      <property name="text">Fluendo</property>\n'
              '      <property name="width">640</property>\n'
              '    </component>\n'
-             '    <component name="muxer-audio-video" type="default-muxer" '
-             'project="flumotion" worker="muxer-worker" version="%(version)s">\n'
+             '    <component name="muxer-audio-video"\n'
+             '               type="default-muxer"\n'
+             '               project="flumotion"\n'
+             '               worker="muxer-worker"\n'
+             '               version="%(version)s">\n'
              '      <eater name="default">\n'
              '        <feed>encoder-audio</feed>\n'
              '        <feed>encoder-video</feed>\n'

Modified: flumotion/trunk/flumotion/wizard/configurationwriter.py
==============================================================================
--- flumotion/trunk/flumotion/wizard/configurationwriter.py	(original)
+++ flumotion/trunk/flumotion/wizard/configurationwriter.py	Mon Apr 28 17:40:41 2008
@@ -91,7 +91,7 @@
             return
         self.pushTag('eater', [('name', "default")])
         for sourceName in eaters:
-            self.writeTagWithData('feed', sourceName)
+            self.writeTag('feed', data=sourceName)
         self.popTag()
 
     def _writeProperties(self, properties):
@@ -106,8 +106,7 @@
             if isinstance(value, tuple):
                 assert len(value) == 2
                 value = '%d/%d' % value
-            self.writeTagWithData('property', value,
-                                  attributes=[('name', name)])
+            self.writeTag('property', [('name', name)], value)
 
     def _writeComponentPlugs(self, plugs):
         if not plugs:


More information about the flumotion-commit mailing list