configurationengine/source/cone/report/tests/unittest_report.py
author m2lahtel
Tue, 10 Aug 2010 14:29:28 +0300
changeset 3 e7e0ae78773e
permissions -rw-r--r--
ConE 1.2.11 release
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     1
#
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     2
# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     3
# All rights reserved.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     4
# This component and the accompanying materials are made available
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     5
# under the terms of "Eclipse Public License v1.0"
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     6
# which accompanies this distribution, and is available
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     7
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     8
#
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     9
# Initial Contributors:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    10
# Nokia Corporation - initial contribution.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    11
#
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    12
# Contributors:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    13
#
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    14
# Description: 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    15
#
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    16
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    17
import os
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    18
import unittest
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    19
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    20
from cone.report import generation_report
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    21
from cone.public import plugin, api
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    22
from testautomation.utils import remove_if_exists
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    23
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    24
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    25
ROOT_PATH = os.path.dirname(os.path.abspath(__file__))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    26
TEMP_DIR     = os.path.normpath(os.path.join(ROOT_PATH, 'temp'))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    27
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    28
class TestGenerateReport(unittest.TestCase):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    29
    def setUp(self):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    30
        remove_if_exists(TEMP_DIR)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    31
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    32
    def test_create_report_data(self):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    33
        rdata = generation_report.ReportData()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    34
        self.assertEquals(rdata.context, None)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    35
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    36
    def test_save_load_empty_report_data(self):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    37
        rdata = generation_report.ReportData()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    38
        tmpfile = os.path.join(TEMP_DIR, 'repdata.dat')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    39
        generation_report.save_report_data(rdata, tmpfile)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    40
        rdata2 = generation_report.load_report_data(tmpfile)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    41
        self.assertEquals(repr(rdata), repr(rdata2))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    42
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    43
    def test_save_load_report_data_with_some_content(self):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    44
        rdata = generation_report.ReportData()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    45
        p = api.Project(api.Storage.open(TEMP_DIR, 'w'))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    46
        config = api.Configuration('test.confml')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    47
        fea = config.create_feature('Foo')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    48
        fea.create_feature('Child1')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    49
        fea.create_feature('Child2')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    50
        c3 = fea.create_feature('Child3')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    51
        c3.value = 'test'
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    52
        rdata.log = ['one',
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    53
                     'two',
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    54
                     'three']
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    55
        p.add_configuration(config)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    56
        p.save()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    57
        rdata.context = plugin.GenerationContext(phase="pre",
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    58
                                                 tags={'target' : 'rofs3'},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    59
                                                 output='foo',
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    60
                                                 configuration=config,
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    61
                                                 project=p)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    62
        
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    63
        tmpfile = os.path.join(TEMP_DIR, 'repdata.dat')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    64
        generation_report.save_report_data(rdata, tmpfile)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    65
        rdata2 = generation_report.load_report_data(tmpfile)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    66
        self.assertEquals(repr(rdata), repr(rdata2))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    67
        self.assertEquals(rdata.log, rdata2.log) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    68
        self.assertEquals(rdata.log, rdata2.log) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    69
        self.assertEquals(rdata2.context.phase, 'pre')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    70
        self.assertEquals(rdata2.context.tags, {'target' : 'rofs3'})
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    71
        self.assertEquals(rdata2.context.output, 'foo')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    72
        self.assertEquals(rdata2.context.configuration.Foo.Child3.fqr, 'Foo.Child3')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    73
        self.assertEquals(rdata2.context.configuration.Foo.Child3.get_value(), 'test')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    74
        self.assertEquals(rdata2.context.configuration.Foo.Child3.value, 'test')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    75
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    76
    def test_save_load_report_data_with_real_content(self):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    77
        prj = api.Project(api.Storage.open(os.path.join(ROOT_PATH,'project')))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    78
        config = prj.get_configuration('root.confml')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    79
        impls = plugin.get_impl_set(config)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    80
        context = plugin.GenerationContext(phase="normal",
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    81
                                           tags={'target' : ['rofs2']},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    82
                                           output='temp',
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    83
                                           configuration=config)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    84
                
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    85
        impls.generate(context)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    86
        prj = config.get_project()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    87
        c1 = config.get_configuration('layer1/root.confml')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    88
        
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    89
        self.assertEquals(len(context.generation_output), 4)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    90
        rdata = generation_report.ReportData()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    91
        rdata.context = context
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    92
        rdata.project = prj
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    93
        tmpfile = os.path.join(TEMP_DIR, 'repdata_real.dat')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    94
        generation_report.save_report_data(rdata, tmpfile)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    95
        rdata2 = generation_report.load_report_data(tmpfile)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    96
        self.assertEquals(repr(rdata), repr(rdata2))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    97
        dview = rdata2.context.configuration.get_default_view()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    98
        self.assertEquals(len(rdata2.context.generation_output), 4)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    99
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   100
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   101
if __name__ == '__main__':
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   102
    unittest.main()