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):