configurationengine/source/cone/confml/tests/unittest_persistentconfml.py
changeset 5 d2c80f5cab53
parent 4 0951727b8815
--- a/configurationengine/source/cone/confml/tests/unittest_persistentconfml.py	Wed Sep 08 12:20:56 2010 +0300
+++ b/configurationengine/source/cone/confml/tests/unittest_persistentconfml.py	Thu Oct 21 16:36:53 2010 +0300
@@ -29,6 +29,7 @@
 from testautomation.base_testcase import BaseTestCase
 import pickle
 
+
 ROOT_PATH = os.path.dirname(os.path.abspath(__file__))
 
 ElementTree = utils.etree
@@ -1745,6 +1746,44 @@
             os.path.join(self.TEMP_DIR, FILE_NAME),
             os.path.join(self.EXPECTED_DIR, 'complex_seq_with_nones.confml'))
 
+class TestExtensions(unittest.TestCase):
+    def test_get_reader_for_extensions(self):
+        reader = persistentconfml.get_reader_for_elem("extensions")
+        self.assertTrue(isinstance(reader, persistentconfml.ExtensionsReader))
+
+    def test_parse_extensions_elem(self):
+        reader = persistentconfml.get_reader_for_elem("extensions")
+        elem = ElementTree.Element('extension')
+        owner = ElementTree.Element('owner')
+        owner.text = 'Testing owner'
+        origin = ElementTree.Element('origin')
+        origin.text = 'just origin'
+        target = ElementTree.Element('target')
+        target.text = 'target hw'
+        elem.append(owner)
+        elem.append(origin)
+        elem.append(target)
+        data = reader.loads(elem)
+        exts = data._get('_extension')
+        self.assertTrue(isinstance(exts, list))
+        self.assertEquals(exts[0].tag, 'owner')
+        self.assertEquals(exts[0].value, 'Testing owner')
+        self.assertEquals(exts[1].tag, 'origin')
+        self.assertEquals(exts[1].value, 'just origin')
+        self.assertEquals(exts[2].tag, 'target')
+        self.assertEquals(exts[2].value, 'target hw')
+
+    def test_write_extensions_elem(self):
+        writer = persistentconfml.get_writer_for_class("ConfmlExtensions")
+        celem = model.ConfmlExtensions()
+        celem._add([model.ConfmlExtension('test', 123), 
+                    model.ConfmlExtension('owner', "some ownername"), 
+                    model.ConfmlExtension('target', "hw")])
+        etree = writer.dumps(celem)
+        self.assertEquals(etree.find('test').text,123)
+        self.assertEquals(etree.find('owner').text,'some ownername')
+        self.assertEquals(etree.find('target').text,'hw')
+        
 class TestReadWriteConfml(BaseTestCase):
     """
     Test case for ensuring that reading in a ConfML file and then writing
@@ -1862,6 +1901,7 @@
         finally:    f.close()
         
         model = persistentconfml.loads(original_data)
+        model.get_default_view()#verify that dump works also after get_default_view is called
         
         PATH_ORIGINAL = os.path.join(output_dir, 'original_pickled', file_name)
         PATH_DUMPED   = os.path.join(output_dir, 'pickled', file_name)