configurationengine/source/scripts/tests/unittest_info.py
author terytkon
Sat, 06 Nov 2010 16:59:14 +0200
changeset 9 63964d875993
parent 4 0951727b8815
permissions -rw-r--r--
Merge changes to system model generator to SF tip.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     1
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     2
# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     3
# All rights reserved.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     4
# This component and the accompanying materials are made available
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     5
# under the terms of "Eclipse Public License v1.0"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     6
# which accompanies this distribution, and is available
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     7
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     8
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     9
# Initial Contributors:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    10
# Nokia Corporation - initial contribution.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    11
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    12
# Contributors:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    13
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    14
# Description: 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    15
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    16
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    17
"""
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    18
Test the configuration
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    19
"""
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    20
import unittest
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    21
import string
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    22
import sys
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    23
import os
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    24
import subprocess
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    25
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    26
from testautomation.base_testcase import BaseTestCase
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    27
from scripttest_common import get_cmd
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    28
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    29
ROOT_PATH = os.path.dirname(os.path.abspath(__file__))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    30
testproject = os.path.join(ROOT_PATH,'test_project.cpf')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    31
temp_dir    = os.path.join(ROOT_PATH, 'temp/info')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    32
VALUE_REPORT_PROJECT = os.path.join(ROOT_PATH, 'testdata/info/value_report_project')
4
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
    33
CTR_REPORT_PROJECT = os.path.join(ROOT_PATH, 'testdata/info/ctr_report_project')
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    34
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    35
class TestInfo(BaseTestCase):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    36
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    37
    def test_get_help(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    38
        cmd = '%s -h' % get_cmd('info')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    39
        out = self.run_command(cmd)
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    40
        lines = out.split(os.linesep)
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    41
        self.assertTrue('Options:' in lines)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    42
        self.assertTrue('  Info options:' in lines)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    43
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    44
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    45
    def test_get_project_info(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    46
        self.set_modification_reference_time(testproject)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    47
        cmd = '%s -p "%s"' % (get_cmd('info'), testproject)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    48
        out = self.run_command(cmd)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    49
        
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    50
        lines = out.split(os.linesep)
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    51
        self.assertTrue('Configurations in the project.' in lines)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    52
        self.assertTrue('root1.confml' in lines)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    53
        self.assertTrue('root2.confml' in lines)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    54
        self.assertTrue('root3.confml' in lines)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    55
        self.assertTrue('root4.confml' in lines)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    56
        self.assertTrue('root5.confml' in lines)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    57
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    58
        self.assert_not_modified(testproject)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    59
    
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    60
    def test_print_active_root(self):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    61
        cmd = '%s -p "%s" --print-active-root' % (get_cmd('info'), testproject)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    62
        out = self.run_command(cmd)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    63
        self.assertTrue('Active root: root5.confml' in out)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    64
        
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    65
        project = os.path.join(ROOT_PATH,'test_variant.cpf')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    66
        cmd = '%s -p "%s" --print-active-root' % (get_cmd('info'), project)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    67
        out = self.run_command(cmd)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    68
        self.assertTrue('Active root: root.confml' in out)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    69
        
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    70
        project = os.path.join(ROOT_PATH, 'testdata/info/no_active_root.cpf')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    71
        cmd = '%s -p "%s" --print-active-root' % (get_cmd('info'), project)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    72
        out = self.run_command(cmd)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    73
        self.assertTrue('No active root.' in out)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    74
        
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    75
    
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    76
    def test_api_report(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    77
        EXPECTED_FILE = os.path.join(ROOT_PATH, 'testdata/info/expected/api_report.html')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    78
        REPORT_FILE = os.path.join(temp_dir, 'api_report.html')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    79
        self.remove_if_exists(REPORT_FILE)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    80
        cmd = '%s -p "%s" -c root3.confml --report-type api --report "%s"' % (get_cmd('info'), testproject, REPORT_FILE)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    81
        out = self.run_command(cmd)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    82
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    83
        # Ignore the file links, because their value depends on the current directory
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    84
        ignores= [r'<td><a href="file://.*">.*</a></td>']
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    85
        self.assert_file_contents_equal(EXPECTED_FILE, REPORT_FILE, ignores)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    86
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    87
    def test_impl_report(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    88
        EXPECTED_FILE = os.path.join(ROOT_PATH, 'testdata/info/expected/impl_report.html')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    89
        REPORT_FILE = os.path.join(temp_dir, 'impl_report.html')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    90
        self.remove_if_exists(REPORT_FILE)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    91
        cmd = '%s -p "%s" -c root3.confml --report-type impl --report "%s"' % (get_cmd('info'), testproject, REPORT_FILE)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    92
        out = self.run_command(cmd)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    93
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    94
        self.assert_file_contents_equal(EXPECTED_FILE, REPORT_FILE)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    95
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    96
    def test_impl_report_with_impl_containers(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    97
        PROJECT = os.path.join(ROOT_PATH, 'generation_test_project')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    98
        EXPECTED_FILE = os.path.join(ROOT_PATH, 'testdata/info/expected/impl_report_with_containers.html')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    99
        REPORT_FILE = os.path.join(temp_dir, 'impl_report_with_containers.html')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   100
        self.remove_if_exists(REPORT_FILE)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   101
        cmd = '%s -p "%s" -c root.confml --report-type impl --report "%s"' % (get_cmd('info'), PROJECT, REPORT_FILE)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   102
        out = self.run_command(cmd)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   103
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   104
        self.assert_file_contents_equal(EXPECTED_FILE, REPORT_FILE)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   105
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   106
    def test_content_report(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   107
        EXPECTED_FILE = os.path.join(ROOT_PATH, 'testdata/info/expected/content_report.html')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   108
        REPORT_FILE = os.path.join(temp_dir, 'content_report.html')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   109
        self.remove_if_exists(REPORT_FILE)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   110
        cmd = '%s -p "%s" -c root5.confml --report-type content --report "%s"' % (get_cmd('info'), testproject, REPORT_FILE)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   111
        out = self.run_command(cmd)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   112
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   113
        self.assert_file_contents_equal(EXPECTED_FILE, REPORT_FILE)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   114
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   115
    # --------------------------------------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   116
    # Tests for invalid configuration argument detection
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   117
    # --------------------------------------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   118
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   119
    def _run_test_invalid_configuration_args(self, config_args, expected_msg):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   120
        REPORT_FILE = os.path.join(temp_dir, "dummy_report.html")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   121
        self.remove_if_exists(REPORT_FILE)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   122
        cmd = '%s -p "%s" %s --report "%s"' \
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   123
            % (get_cmd('info'), VALUE_REPORT_PROJECT, config_args, REPORT_FILE)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   124
        # Note: The following run_command() should really expect the
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   125
        #       return code 2, but for some reason when running from the
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   126
        #       standalone test set, the return value is 0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   127
        out = self.run_command(cmd, expected_return_code = None)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   128
        self.assertFalse(os.path.exists(REPORT_FILE))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   129
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   130
        self.assertTrue(expected_msg in out,
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   131
                        "Expected message '%s' not in output ('%s')" % (expected_msg, out))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   132
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   133
    def test_invalid_single_configuration(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   134
        self._run_test_invalid_configuration_args(
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   135
            '--configuration nonexistent_root.confml',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   136
            "No such configuration: nonexistent_root.confml")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   137
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   138
    def test_invalid_multi_configuration(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   139
        self._run_test_invalid_configuration_args(
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   140
            '--configuration product_root.confml --configuration nonexistent_root.confml',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   141
            "No such configuration: nonexistent_root.confml")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   142
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   143
    def test_invalid_wildcard_configuration(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   144
        self._run_test_invalid_configuration_args(
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   145
            '--config-wildcard nonexistent*.confml',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   146
            "No matching configurations for wildcard(s) and/or pattern(s).")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   147
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   148
    def test_invalid_regex_configuration(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   149
        self._run_test_invalid_configuration_args(
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   150
            '--config-regex nonexistent.*\\.confml',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   151
            "No matching configurations for wildcard(s) and/or pattern(s).")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   152
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   153
    def test_invalid_view_file(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   154
        self._run_test_invalid_configuration_args(
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   155
            '-c product_root.confml --view-file nonexistent.confml',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   156
            "No such file: nonexistent.confml")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   157
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   158
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   159
    # ----------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   160
    # Tests for value report
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   161
    # ----------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   162
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   163
    def _run_test_value_report(self, output, expected, args, rep_type='value'):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   164
        EXPECTED_FILE = os.path.join(ROOT_PATH, 'testdata/info/expected/%s' % expected)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   165
        REPORT_FILE = os.path.join(temp_dir, output)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   166
        self.remove_if_exists(REPORT_FILE)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   167
        cmd = '%s -p "%s" %s --report-type %s --report "%s"' \
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   168
            % (get_cmd('info'), VALUE_REPORT_PROJECT, args, rep_type, REPORT_FILE)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   169
        out = self.run_command(cmd)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   170
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   171
        self.assert_file_contents_equal(EXPECTED_FILE, REPORT_FILE)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   172
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   173
    def test_value_report_configs_with_wildcard(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   174
        self._run_test_value_report(
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   175
            output   = 'value_report_langpacks_wildcard.html',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   176
            expected = 'value_report_langpacks.html',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   177
            args     = '--config-wildcard product_langpack_*_root.confml')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   178
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   179
    def test_value_report_configs_with_regex(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   180
        self._run_test_value_report(
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   181
            output   = 'value_report_langpacks_regex.html',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   182
            expected = 'value_report_langpacks.html',
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   183
            args     = '--config-regex product_langpack_[0-9]{2}_root.confml')
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   184
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   185
    def test_value_report_multi_config(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   186
        self._run_test_value_report(
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   187
            output   = 'value_report_langpacks_regex.html',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   188
            expected = 'value_report_langpacks.html',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   189
            args     = '-c product_langpack_01_root.confml '\
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   190
                       '-c product_langpack_02_root.confml '\
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   191
                       '-c product_langpack_03_root.confml')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   192
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   193
    def test_value_report_single_config(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   194
        self._run_test_value_report(
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   195
            output   = 'value_report_single.html',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   196
            expected = 'value_report_single.html',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   197
            args     = '--configuration product_root.confml')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   198
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   199
    def test_value_report_multi_config_mixed_args(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   200
        self._run_test_value_report(
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   201
            output   = 'value_report_multi_mixed.html',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   202
            expected = 'value_report_multi_mixed.html',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   203
            args     = '-c product_root.confml --config-wildcard product_langpack_*_root.confml')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   204
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   205
    def test_value_report_single_config_with_view(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   206
        VIEW_FILE = os.path.join(ROOT_PATH, 'testdata/info/test_view.confml')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   207
        self._run_test_value_report(
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   208
            output   = 'value_report_single_with_view.html',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   209
            expected = 'value_report_single_with_view.html',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   210
            args     = '--configuration product_root.confml --view-file "%s"' % VIEW_FILE)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   211
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   212
    def test_value_report_single_config_with_included_view(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   213
        VIEW_FILE = os.path.join(ROOT_PATH, 'testdata/info/include_test_view.confml')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   214
        self._run_test_value_report(
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   215
            output   = 'value_report_single_with_included_view.html',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   216
            expected = 'value_report_single_with_view.html',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   217
            args     = '--configuration product_root.confml --view-file "%s"' % VIEW_FILE)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   218
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   219
    def test_value_report_csv(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   220
        self._run_test_value_report(
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   221
            output   = 'value_report.csv',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   222
            expected = 'value_report.csv',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   223
            args     = '--config-wildcard product_langpack_*_root.confml',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   224
            rep_type = 'value_csv')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   225
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   226
    def test_value_report_csv_with_special_chars(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   227
        self._run_test_value_report(
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   228
            output   = 'value_report_special_chars.csv',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   229
            expected = 'value_report_special_chars.csv',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   230
            args     = '--configuration csv_test_root.confml',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   231
            rep_type = 'value_csv')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   232
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   233
    def test_value_report_custom_template(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   234
        TEMPLATE_FILE = os.path.join(ROOT_PATH, 'testdata/info/custom_value_report_template.html')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   235
        EXPECTED_FILE = os.path.join(ROOT_PATH, 'testdata/info/expected/value_report_custom.html')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   236
        REPORT_FILE = os.path.join(temp_dir, 'value_report_custom.html')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   237
        self.remove_if_exists(REPORT_FILE)
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   238
        cmd = '%s -p "%s" --template "%s" --log-file="%s" --report "%s" -c product_root.confml' \
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   239
            % (get_cmd('info'), VALUE_REPORT_PROJECT, 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   240
                                TEMPLATE_FILE, 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   241
                                os.path.join(temp_dir, 'value_report_custom_cone.log'),
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   242
                                REPORT_FILE)
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   243
        out = self.run_command(cmd)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   244
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   245
        self.assert_file_contents_equal(EXPECTED_FILE, REPORT_FILE)
4
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   246
    
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   247
    def test_ctr_report_csv(self):
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   248
        EXPECTED_FILE = os.path.join(ROOT_PATH, 'testdata/info/expected/ctr_report.csv')
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   249
        REPORT_FILE = os.path.join(temp_dir, 'ctr_report.csv')
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   250
        self.remove_if_exists(REPORT_FILE)
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   251
        cmd = '%s -p "%s" --report "%s" --report-type ctr_csv --config-wildcard product_customisation_root*' \
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   252
            % (get_cmd('info'), CTR_REPORT_PROJECT, 
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   253
                                REPORT_FILE)
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   254
        out = self.run_command(cmd)
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   255
        
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   256
        self.assert_file_contents_equal(EXPECTED_FILE, REPORT_FILE)
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   257
    
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   258
    def test_ctr_report_html(self):
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   259
        EXPECTED_FILE = os.path.join(ROOT_PATH, 'testdata/info/expected/ctr_report.html')
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   260
        REPORT_FILE = os.path.join(temp_dir, 'ctr_report.html')
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   261
        self.remove_if_exists(REPORT_FILE)
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   262
        cmd = '%s -p "%s" --report "%s" --report-type ctr --config-wildcard product_customisation_root*' \
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   263
            % (get_cmd('info'), CTR_REPORT_PROJECT, 
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   264
                                REPORT_FILE)
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   265
        out = self.run_command(cmd)
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   266
        
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   267
        self.assert_file_contents_equal(EXPECTED_FILE, REPORT_FILE)
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   268
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   269
if __name__ == '__main__':
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   270
      unittest.main()