configurationengine/source/plugins/symbian/ConeCRMLPlugin/CRMLPlugin/tests/unittest_txt_generation.py
changeset 3 e7e0ae78773e
parent 0 2e8eeb919028
--- a/configurationengine/source/plugins/symbian/ConeCRMLPlugin/CRMLPlugin/tests/unittest_txt_generation.py	Fri Mar 12 08:30:17 2010 +0200
+++ b/configurationengine/source/plugins/symbian/ConeCRMLPlugin/CRMLPlugin/tests/unittest_txt_generation.py	Tue Aug 10 14:29:28 2010 +0300
@@ -15,12 +15,11 @@
 #
 
 import sys, os, unittest
-import __init__
 
 ROOT_PATH = os.path.dirname(os.path.abspath(__file__))
 
 from testautomation.base_testcase import BaseTestCase
-from cone.public import exceptions, plugin, api, container
+from cone.public import exceptions, plugin, api, container, utils
 
 from CRMLPlugin import crml_impl
 
@@ -39,11 +38,14 @@
         
         prj = api.Project(api.Storage.open(project_dir))
         config = prj.get_configuration(config)
+        gc = plugin.GenerationContext(configuration=config,
+                      output=output_dir)
+
         impls = plugin.get_impl_set(config, 'crml$')
-        impls.output = output_dir
-        impls.generation_context.tags['target'] = ['rofs2']
-        impls.generate()
-        impls.post_generate()
+        gc.tags['target'] = ['rofs2']
+        gc.filtering_disabled = True
+        impls.generate(gc)
+        impls.post_generate(gc)
         
         self.assert_dir_contents_equal(output_dir, expected_dir, ['.svn'])
     
@@ -57,11 +59,14 @@
         
         prj = api.Project(api.Storage.open(project_dir))
         config = prj.get_configuration(config)
+        gc = plugin.GenerationContext(configuration=config,
+                                      output=output_dir)
+
         impls = plugin.get_impl_set(config, 'crml$')
-        impls.output = output_dir
-        impls.generation_context.tags['target'] = []
-        impls.generate()
-        impls.post_generate()
+        gc.tags['target'] = []
+        gc.filtering_disabled = True
+        impls.generate(gc)
+        impls.post_generate(gc)
         
         self.assert_dir_contents_equal(output_dir, expected_dir, ['.svn', 'private'])
         self.assertFalse(os.path.exists(os.path.join(output_dir, 'private/100059C9/cenrep_rfs.txt')))
@@ -77,11 +82,41 @@
         
         prj = api.Project(api.Storage.open(project_dir))
         config = prj.get_configuration(config)
+        gc = plugin.GenerationContext(configuration=config,
+                                      output=output_dir)
         impls = plugin.get_impl_set(config, 'crml$')
-        impls.output = output_dir
-        impls.generation_context.tags['target'] = ['rofs2']
-        impls.generate()
-        impls.post_generate()
+        gc.tags['target'] = ['rofs2']
+        gc.filtering_disabled = True
+        impls.generate(gc)
+        impls.post_generate(gc)
         
         self.assert_dir_contents_equal(output_dir, expected_dir, ['.svn'])
     
+    def test_generate_delta_cenreps(self):
+        project_dir     = abspath('gen_project')
+        config          = 'root2.confml'
+        output_dir      = abspath('temp/gen_output_deltacenrep')
+        expected_dir    = abspath('gen_expected_deltacenrep')
+        
+        self.remove_if_exists(output_dir)
+        
+        prj = api.Project(api.Storage.open(project_dir))
+        config = prj.get_configuration(config)
+        gc = plugin.GenerationContext(configuration=config,
+                                      output=output_dir)
+        # Get refs from the last layer
+        layer = config.get_configuration_by_index(-1)
+        refs = utils.distinct_array(layer.list_leaf_datas())
+        
+        impls = plugin.get_impl_set(config, 'crml$')
+        impls = impls | plugin.get_impl_set(config, 'implml$')
+        impls = impls.filter_implementations(refs=refs)
+        
+        gc.tags['crml'] = ['deltacenrep']
+        gc.changed_refs = refs
+        gc.filtering_disabled = True
+        impls.generate(gc)
+        impls.post_generate(gc)
+        
+        output_dir = os.path.join(output_dir, 'deltacenreps')
+        self.assert_dir_contents_equal(output_dir, expected_dir, ['.svn'])