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


Reply via email to