Revision: 3437
Author: pekka.klarck
Date: Mon May 24 12:33:03 2010
Log: 1) Handle empty values for imports and metadata, 2) Moved setter for imports/metadata into SettingTable to clean module namespace
http://code.google.com/p/robotframework/source/detail?r=3437

Modified:
 /trunk/src/robot/parsing/model.py

=======================================
--- /trunk/src/robot/parsing/model.py   Mon May 24 08:29:36 2010
+++ /trunk/src/robot/parsing/model.py   Mon May 24 12:33:03 2010
@@ -172,7 +172,13 @@
         self.imports = []
         self._setters = self._get_setters()

-    def add_metadata(self, name, value, comment=None):
+    def _get_adder(self, adder_method):
+        def adder(value, comment):
+            name = value[0] if value else ''
+            adder_method(name, value[1:], comment)
+        return adder
+
+    def add_metadata(self, name, value='', comment=None):
         self.metadata.append(Metadata(self, name, value, comment))
         return self.metadata[-1]

@@ -215,26 +221,19 @@
                                      'Force Tags': self.force_tags.set,
                                      'Default Tags': self.default_tags.set,
                                      'Test Timeout': self.test_timeout.set,
- 'Library': ImportSetter(self.add_library), - 'Resource': ImportSetter(self.add_resource), - 'Variables': ImportSetter(self.add_variables), - 'Metadata': ImportSetter(self.add_metadata)})
-
-
-class ImportSetter(object):
-    def __init__(self, setter):
-        self._setter = setter
-    def __call__(self, datacells, comment):
-        self._setter(datacells[0], datacells[1:], comment)
+ 'Library': self._get_adder(self.add_library), + 'Resource': self._get_adder(self.add_resource), + 'Variables': self._get_adder(self.add_variables), + 'Metadata': self._get_adder(self.add_metadata)})


 class ResourceFileSettingTable(_SettingTable):
     def _get_setters(self):
         return utils.NormalizedDict({'Documentation': self.doc.set,
                                      'Document': self.doc.set,
- 'Library': ImportSetter(self.add_library), - 'Resource': ImportSetter(self.add_resource), - 'Variables': ImportSetter(self.add_variables)}) + 'Library': self._get_adder(self.add_library), + 'Resource': self._get_adder(self.add_resource), + 'Variables': self._get_adder(self.add_variables)})


 class InitFileSettingTable(_SettingTable):
@@ -250,10 +249,10 @@
'Test Teardown': self.test_teardown.set, 'Test Postcondition': self.test_teardown.set,
                                      'Force Tags': self.force_tags.set,
- 'Library': ImportSetter(self.add_library), - 'Resource': ImportSetter(self.add_resource), - 'Variables': ImportSetter(self.add_variables), - 'Metadata': ImportSetter(self.add_metadata)}) + 'Library': self._get_adder(self.add_library), + 'Resource': self._get_adder(self.add_resource), + 'Variables': self._get_adder(self.add_variables), + 'Metadata': self._get_adder(self.add_metadata)})


 class VariableTable(_Table):

Reply via email to