configurationengine/source/cone/confml/tests/unittest_persistentconfml.py
changeset 5 d2c80f5cab53
parent 4 0951727b8815
equal deleted inserted replaced
4:0951727b8815 5:d2c80f5cab53
    26 from cone.public import api, persistence, utils
    26 from cone.public import api, persistence, utils
    27 from cone.storage import filestorage
    27 from cone.storage import filestorage
    28 from cone.confml import persistentconfml, model, confmltree
    28 from cone.confml import persistentconfml, model, confmltree
    29 from testautomation.base_testcase import BaseTestCase
    29 from testautomation.base_testcase import BaseTestCase
    30 import pickle
    30 import pickle
       
    31 
    31 
    32 
    32 ROOT_PATH = os.path.dirname(os.path.abspath(__file__))
    33 ROOT_PATH = os.path.dirname(os.path.abspath(__file__))
    33 
    34 
    34 ElementTree = utils.etree
    35 ElementTree = utils.etree
    35 
    36 
  1743         
  1744         
  1744         self.assert_file_contents_equal(
  1745         self.assert_file_contents_equal(
  1745             os.path.join(self.TEMP_DIR, FILE_NAME),
  1746             os.path.join(self.TEMP_DIR, FILE_NAME),
  1746             os.path.join(self.EXPECTED_DIR, 'complex_seq_with_nones.confml'))
  1747             os.path.join(self.EXPECTED_DIR, 'complex_seq_with_nones.confml'))
  1747 
  1748 
       
  1749 class TestExtensions(unittest.TestCase):
       
  1750     def test_get_reader_for_extensions(self):
       
  1751         reader = persistentconfml.get_reader_for_elem("extensions")
       
  1752         self.assertTrue(isinstance(reader, persistentconfml.ExtensionsReader))
       
  1753 
       
  1754     def test_parse_extensions_elem(self):
       
  1755         reader = persistentconfml.get_reader_for_elem("extensions")
       
  1756         elem = ElementTree.Element('extension')
       
  1757         owner = ElementTree.Element('owner')
       
  1758         owner.text = 'Testing owner'
       
  1759         origin = ElementTree.Element('origin')
       
  1760         origin.text = 'just origin'
       
  1761         target = ElementTree.Element('target')
       
  1762         target.text = 'target hw'
       
  1763         elem.append(owner)
       
  1764         elem.append(origin)
       
  1765         elem.append(target)
       
  1766         data = reader.loads(elem)
       
  1767         exts = data._get('_extension')
       
  1768         self.assertTrue(isinstance(exts, list))
       
  1769         self.assertEquals(exts[0].tag, 'owner')
       
  1770         self.assertEquals(exts[0].value, 'Testing owner')
       
  1771         self.assertEquals(exts[1].tag, 'origin')
       
  1772         self.assertEquals(exts[1].value, 'just origin')
       
  1773         self.assertEquals(exts[2].tag, 'target')
       
  1774         self.assertEquals(exts[2].value, 'target hw')
       
  1775 
       
  1776     def test_write_extensions_elem(self):
       
  1777         writer = persistentconfml.get_writer_for_class("ConfmlExtensions")
       
  1778         celem = model.ConfmlExtensions()
       
  1779         celem._add([model.ConfmlExtension('test', 123), 
       
  1780                     model.ConfmlExtension('owner', "some ownername"), 
       
  1781                     model.ConfmlExtension('target', "hw")])
       
  1782         etree = writer.dumps(celem)
       
  1783         self.assertEquals(etree.find('test').text,123)
       
  1784         self.assertEquals(etree.find('owner').text,'some ownername')
       
  1785         self.assertEquals(etree.find('target').text,'hw')
       
  1786         
  1748 class TestReadWriteConfml(BaseTestCase):
  1787 class TestReadWriteConfml(BaseTestCase):
  1749     """
  1788     """
  1750     Test case for ensuring that reading in a ConfML file and then writing
  1789     Test case for ensuring that reading in a ConfML file and then writing
  1751     it out again results in logically the same data (XML-wise) as the
  1790     it out again results in logically the same data (XML-wise) as the
  1752     original data was.
  1791     original data was.
  1860         f = open(file_path, "rb")
  1899         f = open(file_path, "rb")
  1861         try:        original_data = f.read()
  1900         try:        original_data = f.read()
  1862         finally:    f.close()
  1901         finally:    f.close()
  1863         
  1902         
  1864         model = persistentconfml.loads(original_data)
  1903         model = persistentconfml.loads(original_data)
       
  1904         model.get_default_view()#verify that dump works also after get_default_view is called
  1865         
  1905         
  1866         PATH_ORIGINAL = os.path.join(output_dir, 'original_pickled', file_name)
  1906         PATH_ORIGINAL = os.path.join(output_dir, 'original_pickled', file_name)
  1867         PATH_DUMPED   = os.path.join(output_dir, 'pickled', file_name)
  1907         PATH_DUMPED   = os.path.join(output_dir, 'pickled', file_name)
  1868         
  1908         
  1869         file_dir = os.path.dirname(PATH_DUMPED)
  1909         file_dir = os.path.dirname(PATH_DUMPED)