diff -r 87cfa131b535 -r e7e0ae78773e configurationengine/source/cone/report/tests/unittest_report.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/configurationengine/source/cone/report/tests/unittest_report.py Tue Aug 10 14:29:28 2010 +0300 @@ -0,0 +1,102 @@ +# +# 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: +# + +import os +import unittest + +from cone.report import generation_report +from cone.public import plugin, api +from testautomation.utils import remove_if_exists + + +ROOT_PATH = os.path.dirname(os.path.abspath(__file__)) +TEMP_DIR = os.path.normpath(os.path.join(ROOT_PATH, 'temp')) + +class TestGenerateReport(unittest.TestCase): + def setUp(self): + remove_if_exists(TEMP_DIR) + + def test_create_report_data(self): + rdata = generation_report.ReportData() + self.assertEquals(rdata.context, None) + + def test_save_load_empty_report_data(self): + rdata = generation_report.ReportData() + tmpfile = os.path.join(TEMP_DIR, 'repdata.dat') + generation_report.save_report_data(rdata, tmpfile) + rdata2 = generation_report.load_report_data(tmpfile) + self.assertEquals(repr(rdata), repr(rdata2)) + + def test_save_load_report_data_with_some_content(self): + rdata = generation_report.ReportData() + p = api.Project(api.Storage.open(TEMP_DIR, 'w')) + config = api.Configuration('test.confml') + fea = config.create_feature('Foo') + fea.create_feature('Child1') + fea.create_feature('Child2') + c3 = fea.create_feature('Child3') + c3.value = 'test' + rdata.log = ['one', + 'two', + 'three'] + p.add_configuration(config) + p.save() + rdata.context = plugin.GenerationContext(phase="pre", + tags={'target' : 'rofs3'}, + output='foo', + configuration=config, + project=p) + + tmpfile = os.path.join(TEMP_DIR, 'repdata.dat') + generation_report.save_report_data(rdata, tmpfile) + rdata2 = generation_report.load_report_data(tmpfile) + self.assertEquals(repr(rdata), repr(rdata2)) + self.assertEquals(rdata.log, rdata2.log) + self.assertEquals(rdata.log, rdata2.log) + self.assertEquals(rdata2.context.phase, 'pre') + self.assertEquals(rdata2.context.tags, {'target' : 'rofs3'}) + self.assertEquals(rdata2.context.output, 'foo') + self.assertEquals(rdata2.context.configuration.Foo.Child3.fqr, 'Foo.Child3') + self.assertEquals(rdata2.context.configuration.Foo.Child3.get_value(), 'test') + self.assertEquals(rdata2.context.configuration.Foo.Child3.value, 'test') + + def test_save_load_report_data_with_real_content(self): + prj = api.Project(api.Storage.open(os.path.join(ROOT_PATH,'project'))) + config = prj.get_configuration('root.confml') + impls = plugin.get_impl_set(config) + context = plugin.GenerationContext(phase="normal", + tags={'target' : ['rofs2']}, + output='temp', + configuration=config) + + impls.generate(context) + prj = config.get_project() + c1 = config.get_configuration('layer1/root.confml') + + self.assertEquals(len(context.generation_output), 4) + rdata = generation_report.ReportData() + rdata.context = context + rdata.project = prj + tmpfile = os.path.join(TEMP_DIR, 'repdata_real.dat') + generation_report.save_report_data(rdata, tmpfile) + rdata2 = generation_report.load_report_data(tmpfile) + self.assertEquals(repr(rdata), repr(rdata2)) + dview = rdata2.context.configuration.get_default_view() + self.assertEquals(len(rdata2.context.generation_output), 4) + + +if __name__ == '__main__': + unittest.main()