configurationengine/source/plugins/symbian/ConeCRMLPlugin/CRMLPlugin/tests/unittest_txt_generation.py
changeset 3 e7e0ae78773e
parent 0 2e8eeb919028
equal deleted inserted replaced
2:87cfa131b535 3:e7e0ae78773e
    13 #
    13 #
    14 # Description:
    14 # Description:
    15 #
    15 #
    16 
    16 
    17 import sys, os, unittest
    17 import sys, os, unittest
    18 import __init__
       
    19 
    18 
    20 ROOT_PATH = os.path.dirname(os.path.abspath(__file__))
    19 ROOT_PATH = os.path.dirname(os.path.abspath(__file__))
    21 
    20 
    22 from testautomation.base_testcase import BaseTestCase
    21 from testautomation.base_testcase import BaseTestCase
    23 from cone.public import exceptions, plugin, api, container
    22 from cone.public import exceptions, plugin, api, container, utils
    24 
    23 
    25 from CRMLPlugin import crml_impl
    24 from CRMLPlugin import crml_impl
    26 
    25 
    27 def abspath(path):
    26 def abspath(path):
    28     return os.path.normpath(os.path.join(ROOT_PATH, path))
    27     return os.path.normpath(os.path.join(ROOT_PATH, path))
    37         
    36         
    38         self.remove_if_exists(output_dir)
    37         self.remove_if_exists(output_dir)
    39         
    38         
    40         prj = api.Project(api.Storage.open(project_dir))
    39         prj = api.Project(api.Storage.open(project_dir))
    41         config = prj.get_configuration(config)
    40         config = prj.get_configuration(config)
       
    41         gc = plugin.GenerationContext(configuration=config,
       
    42                       output=output_dir)
       
    43 
    42         impls = plugin.get_impl_set(config, 'crml$')
    44         impls = plugin.get_impl_set(config, 'crml$')
    43         impls.output = output_dir
    45         gc.tags['target'] = ['rofs2']
    44         impls.generation_context.tags['target'] = ['rofs2']
    46         gc.filtering_disabled = True
    45         impls.generate()
    47         impls.generate(gc)
    46         impls.post_generate()
    48         impls.post_generate(gc)
    47         
    49         
    48         self.assert_dir_contents_equal(output_dir, expected_dir, ['.svn'])
    50         self.assert_dir_contents_equal(output_dir, expected_dir, ['.svn'])
    49     
    51     
    50     def test_generate_from_project_without_rfs(self):
    52     def test_generate_from_project_without_rfs(self):
    51         project_dir     = abspath('gen_project')
    53         project_dir     = abspath('gen_project')
    55         
    57         
    56         self.remove_if_exists(output_dir)
    58         self.remove_if_exists(output_dir)
    57         
    59         
    58         prj = api.Project(api.Storage.open(project_dir))
    60         prj = api.Project(api.Storage.open(project_dir))
    59         config = prj.get_configuration(config)
    61         config = prj.get_configuration(config)
       
    62         gc = plugin.GenerationContext(configuration=config,
       
    63                                       output=output_dir)
       
    64 
    60         impls = plugin.get_impl_set(config, 'crml$')
    65         impls = plugin.get_impl_set(config, 'crml$')
    61         impls.output = output_dir
    66         gc.tags['target'] = []
    62         impls.generation_context.tags['target'] = []
    67         gc.filtering_disabled = True
    63         impls.generate()
    68         impls.generate(gc)
    64         impls.post_generate()
    69         impls.post_generate(gc)
    65         
    70         
    66         self.assert_dir_contents_equal(output_dir, expected_dir, ['.svn', 'private'])
    71         self.assert_dir_contents_equal(output_dir, expected_dir, ['.svn', 'private'])
    67         self.assertFalse(os.path.exists(os.path.join(output_dir, 'private/100059C9/cenrep_rfs.txt')))
    72         self.assertFalse(os.path.exists(os.path.join(output_dir, 'private/100059C9/cenrep_rfs.txt')))
    68     
    73     
    69     
    74     
    75         
    80         
    76         self.remove_if_exists(output_dir)
    81         self.remove_if_exists(output_dir)
    77         
    82         
    78         prj = api.Project(api.Storage.open(project_dir))
    83         prj = api.Project(api.Storage.open(project_dir))
    79         config = prj.get_configuration(config)
    84         config = prj.get_configuration(config)
       
    85         gc = plugin.GenerationContext(configuration=config,
       
    86                                       output=output_dir)
    80         impls = plugin.get_impl_set(config, 'crml$')
    87         impls = plugin.get_impl_set(config, 'crml$')
    81         impls.output = output_dir
    88         gc.tags['target'] = ['rofs2']
    82         impls.generation_context.tags['target'] = ['rofs2']
    89         gc.filtering_disabled = True
    83         impls.generate()
    90         impls.generate(gc)
    84         impls.post_generate()
    91         impls.post_generate(gc)
    85         
    92         
    86         self.assert_dir_contents_equal(output_dir, expected_dir, ['.svn'])
    93         self.assert_dir_contents_equal(output_dir, expected_dir, ['.svn'])
    87     
    94     
       
    95     def test_generate_delta_cenreps(self):
       
    96         project_dir     = abspath('gen_project')
       
    97         config          = 'root2.confml'
       
    98         output_dir      = abspath('temp/gen_output_deltacenrep')
       
    99         expected_dir    = abspath('gen_expected_deltacenrep')
       
   100         
       
   101         self.remove_if_exists(output_dir)
       
   102         
       
   103         prj = api.Project(api.Storage.open(project_dir))
       
   104         config = prj.get_configuration(config)
       
   105         gc = plugin.GenerationContext(configuration=config,
       
   106                                       output=output_dir)
       
   107         # Get refs from the last layer
       
   108         layer = config.get_configuration_by_index(-1)
       
   109         refs = utils.distinct_array(layer.list_leaf_datas())
       
   110         
       
   111         impls = plugin.get_impl_set(config, 'crml$')
       
   112         impls = impls | plugin.get_impl_set(config, 'implml$')
       
   113         impls = impls.filter_implementations(refs=refs)
       
   114         
       
   115         gc.tags['crml'] = ['deltacenrep']
       
   116         gc.changed_refs = refs
       
   117         gc.filtering_disabled = True
       
   118         impls.generate(gc)
       
   119         impls.post_generate(gc)
       
   120         
       
   121         output_dir = os.path.join(output_dir, 'deltacenreps')
       
   122         self.assert_dir_contents_equal(output_dir, expected_dir, ['.svn'])