Revision: 3279
Author: pekka.klarck
Date: Wed May 12 05:50:26 2010
Log: metadata
http://code.google.com/p/robotframework/source/detail?r=3279
Modified:
/trunk/src/robot/parsing/newmodel.py
/trunk/utest/parsing/test_model.py
=======================================
--- /trunk/src/robot/parsing/newmodel.py Wed May 12 03:58:31 2010
+++ /trunk/src/robot/parsing/newmodel.py Wed May 12 05:50:26 2010
@@ -41,14 +41,17 @@
self.doc = Documentation()
self.suite_setup = Fixture()
self.suite_teardown = Fixture()
- self.metadata = Metadata()
self.test_setup = Fixture()
self.test_teardown = Fixture()
self.test_timeout = Timeout()
self.force_tags = Tags()
self.default_tags = Tags()
+ self.metadata = []
self.imports = []
+ def add_metadata(self, name, value):
+ self.metadata.append(Metadata(name, value))
+
def add_library(self, value):
self.imports.append(Library(value))
@@ -60,9 +63,9 @@
def __iter__(self):
for setting in [self.doc, self.suite_setup, self.suite_teardown,
- self.metadata, self.test_setup, self.test_teardown,
- self.test_timeout, self.force_tags,
self.default_tags] \
- + self.imports:
+ self.test_setup, self.test_teardown,
self.test_timeout,
+ self.force_tags, self.default_tags] \
+ + self.metadata + self.imports:
yield setting
def edited(self):
@@ -106,21 +109,25 @@
def edited(self):
return bool(self.value)
+ def _string_value(self, value):
+ return value if isinstance(value, basestring) else ' '.join(value)
+
class Documentation(Setting):
def __init__(self):
self.value = ''
def set(self, value):
- if not isinstance(value, basestring):
- value = ' '.join(value)
- self.value = value
+ self.value = self._string_value(value)
class Fixture(Setting):
pass
class Metadata(Setting):
- pass
+
+ def __init__(self, name, value):
+ self.name = name
+ self.value = self._string_value(value)
class Timeout(Setting):
pass
=======================================
--- /trunk/utest/parsing/test_model.py Wed May 12 03:58:31 2010
+++ /trunk/utest/parsing/test_model.py Wed May 12 05:50:26 2010
@@ -31,12 +31,12 @@
assert_true(isinstance(self.table.doc, Documentation))
assert_true(isinstance(self.table.suite_setup, Fixture))
assert_true(isinstance(self.table.suite_teardown, Fixture))
- assert_true(isinstance(self.table.metadata, Metadata))
assert_true(isinstance(self.table.test_setup, Fixture))
assert_true(isinstance(self.table.test_teardown, Fixture))
assert_true(isinstance(self.table.test_timeout, Timeout))
assert_true(isinstance(self.table.force_tags, Tags))
assert_true(isinstance(self.table.default_tags, Tags))
+ assert_equal(self.table.metadata, [])
assert_equal(self.table.imports, [])
def test_empty_doc(self):
@@ -50,12 +50,21 @@
self.table.doc.set(['hello', 'world'])
assert_equal(self.table.doc.value, 'hello world')
+ def test_metadata(self):
+ self.table.add_metadata('Foo', 'bar')
+ self.table.add_metadata('boo', ['f', 'a', 'r'])
+ assert_equal(len(self.table.metadata), 2)
+ assert_equal(self.table.metadata[0].name, 'Foo')
+ assert_equal(self.table.metadata[0].value, 'bar')
+ assert_equal(self.table.metadata[1].name, 'boo')
+ assert_equal(self.table.metadata[1].value, 'f a r')
+
def test_imports(self):
self.table.add_library(['Name', 'arg'])
self.table.add_resource(['reso.txt'])
self.table.add_variables(['varz.py', 'a1', 'a2'])
self.table.add_resource(['reso2.txt'])
- assert_true(len(self.table.imports), 4)
+ assert_equal(len(self.table.imports), 4)
assert_true(all(isinstance(im, Import) for im in
self.table.imports))