diff -r 000000000000 -r 2e8eeb919028 configurationengine/source/cone/storage/tests/unittest_metadata.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/configurationengine/source/cone/storage/tests/unittest_metadata.py Thu Mar 11 17:04:37 2010 +0200 @@ -0,0 +1,153 @@ +# +# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +# All rights reserved. +# This component and the accompanying materials are made available +# under the terms of "Eclipse Public License v1.0" +# which accompanies this distribution, and is available +# at the URL "http://www.eclipse.org/legal/epl-v10.html". +# +# Initial Contributors: +# Nokia Corporation - initial contribution. +# +# Contributors: +# +# Description: +# + + +""" +Test the CPF metadata file parsing routines +""" +import os, sys, unittest +try: + from cElementTree import ElementTree +except ImportError: + try: + from elementtree import ElementTree + except ImportError: + try: + from xml.etree import cElementTree as ElementTree + except ImportError: + from xml.etree import ElementTree + +import __init__ + +from cone.public import utils, exceptions, api +from cone.storage import metadata, stringstorage +ROOT_PATH = os.path.dirname(os.path.abspath(__file__)) +emptytestdata = ''\ +'' + + +testdata = \ +''\ +' '\ +' '\ +' '\ +' '\ +' '\ +' '\ +' '\ +' '\ +' '\ +' '\ +' '\ +' '\ +' '\ +''\ + +class TestMetadataReader(unittest.TestCase): + def setUp(self): + pass + + def test_create_meta_fromstring(self): + m = metadata.MetadataReader().fromstring(testdata) + self.assertTrue(m) + + def test_create_meta_fromstring(self): + m = metadata.MetadataReader().fromstring(testdata) + self.assertTrue(m.data.has_key('cpf.name')) + self.assertTrue(m.data.has_key('cpf.description')) + self.assertTrue(m.data.has_key('cpf.viewId')) + self.assertTrue(m.data.has_key('cpf.rootFile')) + self.assertEquals(m.data['cpf.name'], 'test') + self.assertEquals(m.data['cpf.description'], 'just testing') + self.assertEquals(m.data['cpf.viewId'], 'Sample View') + self.assertEquals(m.data['cpf.rootFile'], 'root.confml') + + def test_str_to_meta_and_back(self): + meta = metadata.MetadataReader().fromstring(testdata) + str = metadata.MetadataWriter().tostring(meta,False) + self.assertTrue(str.find('cpf.name')) + + def test_get_property(self): + etree = ElementTree.fromstring('') + (key,value) = metadata.MetadataReader().get_property(etree) + self.assertEquals(key,'test') + self.assertEquals(value,'test') + + def test_get_property_with_only_key(self): + etree = ElementTree.fromstring('') + (key,value) = metadata.MetadataReader().get_property(etree) + self.assertEquals(key,'test') + self.assertEquals(value,'') + +class TestMetadataWriter(unittest.TestCase): + def setUp(self): + pass + + def test_metadata_tostring(self): + meta = metadata.Metadata() + str = metadata.MetadataWriter().tostring(meta) + self.assertTrue(str,emptytestdata) + + def test_metadata_with_values_tostring(self): + meta = metadata.Metadata() + meta.data['cpf.name'] = 'testing ss' + meta.data['cpf.description'] = 'foo faa' + str = metadata.MetadataWriter().tostring(meta) + self.assertTrue(str,'') + + def test_metadata_with_values_to_resource(self): + meta = metadata.Metadata() + meta.data['cpf.name'] = 'testing ss' + meta.data['cpf.description'] = 'foo faa' + storage = stringstorage.StringStorage("") + res = storage.open_resource(".metadata","w") + metadata.MetadataWriter().toresource(meta,res) + self.assertTrue(res.getvalue(),'') + + def test_metadata_from_meta_to_str_and_back(self): + meta = metadata.Metadata() + meta.data['cpf.name'] = 'testing ss' + meta.data['cpf.description'] = 'foo faa' + str = metadata.MetadataWriter().tostring(meta) + meta2 = metadata.MetadataReader().fromstring(str) + self.assertEqual(meta.data,meta2.data) + + def test_incorrect_class_fails(self): + try: + class dummy: + pass + str = metadata.MetadataWriter().tostring(dummy()) + self.fail("Writing dummy class succeeds!") + except exceptions.IncorrectClassError,e: + pass + + + def test_set_property(self): + elem = ElementTree.Element('property') + prop = metadata.MetadataWriter().set_property(elem,'test','foof') + self.assertTrue(prop.get('name'),'test') + self.assertTrue(prop.get('value'),'foof') + + def test_set_property_with_only_key(self): + elem = ElementTree.Element('property') + prop = metadata.MetadataWriter().set_property(elem,'test','') + self.assertEquals(prop.get('name'),'test') + self.assertEquals(prop.get('value'),None) + + +if __name__ == '__main__': + unittest.main() +