--- a/configurationengine/source/scripts/tests/unittest_initvariant.py Tue Oct 26 10:43:50 2010 +0100
+++ b/configurationengine/source/scripts/tests/unittest_initvariant.py Sat Nov 06 16:59:14 2010 +0200
@@ -34,7 +34,7 @@
class TestInitVariant(BaseTestCase):
- def _prepare_workdir(self, subdir, expected_zip):
+ def _prepare_workdir(self, subdir, project_zip, expected_zip):
WORKDIR = os.path.join(TEMP_DIR, subdir)
PROJECT_DIR = os.path.join(WORKDIR, 'project')
EXPECTED_DIR = os.path.join(WORKDIR, 'expected')
@@ -42,7 +42,7 @@
self.remove_if_exists(WORKDIR)
unzip_file.unzip_file(
- os.path.join(TESTDATA_DIR, 'test_project.zip'),
+ os.path.join(TESTDATA_DIR, project_zip),
PROJECT_DIR)
unzip_file.unzip_file(
os.path.join(TESTDATA_DIR, expected_zip),
@@ -57,8 +57,8 @@
p.close()
return active_root
- def test_initvariant(self):
- PROJECT_DIR, EXPECTED_DIR = self._prepare_workdir('var1', 'expected.zip')
+ def test_initvariant_set_active_root(self):
+ PROJECT_DIR, EXPECTED_DIR = self._prepare_workdir('var1', 'test_project.zip', 'expected.zip')
self.assertEquals(self._get_active_configuration(PROJECT_DIR), None)
@@ -70,8 +70,8 @@
'testprod_custvariant_123_foo_root.confml')
- def test_initvariant_2(self):
- PROJECT_DIR, EXPECTED_DIR = self._prepare_workdir('var2', 'expected2.zip')
+ def test_initvariant_do_not_set_active_root(self):
+ PROJECT_DIR, EXPECTED_DIR = self._prepare_workdir('var2', 'test_project.zip', 'expected2.zip')
self.assertEquals(self._get_active_configuration(PROJECT_DIR), None)
@@ -83,17 +83,54 @@
def test_initvariant_based_on_configuration(self):
- PROJECT_DIR, EXPECTED_DIR = self._prepare_workdir('var3', 'expected3.zip')
+ PROJECT_DIR, EXPECTED_DIR = self._prepare_workdir('var3', 'test_project.zip', 'expected3.zip')
self.assertEquals(self._get_active_configuration(PROJECT_DIR), None)
cmd = '%s -p "%s" -c foovariant.confml --variant-id=123 -b testprod_custvariant_root.confml' % (get_cmd('initvariant'), PROJECT_DIR)
-
+ self.run_command(cmd)
+
+ self.assert_dir_contents_equal(PROJECT_DIR, EXPECTED_DIR, ['.svn', '.metadata'])
+ self.assertEquals(self._get_active_configuration(PROJECT_DIR), None)
+
+ def test_initvariant_based_on_configuration_on_dcp_structure(self):
+ # variant dir is project/product/customer/variant instead of project/coreplat/product/customer/variant
+ PROJECT_DIR, EXPECTED_DIR = self._prepare_workdir('var4', 'project4.zip', 'expected4.zip')
+
+ cmd = '%s -p "%s" -c foovariant.confml --variant-id=123 -b testprod_custvariant_root.confml' % (get_cmd('initvariant'), PROJECT_DIR)
+ self.run_command(cmd)
+
+ self.assert_dir_contents_equal(PROJECT_DIR, EXPECTED_DIR, ['.svn', '.metadata'])
+ self.assertEquals(self._get_active_configuration(PROJECT_DIR), None)
+
+ # test that when root config in cpf has multiple ctr codes defined and a matching updated
+ # root config with all the same ctr codes is found, the target root config is created
+ # accordingly
+ def test_initvariant_with_updated_root_in_target_project(self):
+ PROJECT_DIR, EXPECTED_DIR = self._prepare_workdir('var5', 'test_project2.zip', 'expected5.zip')
+ TEST_CPF = os.path.join(TESTDATA_DIR, 'test_project.cpf')
+ ROOT_CONFIG = 'testprod_custvariant_03_root.confml'
+ FIND_LAYER_REGEXP = r'.*custvar[^/].*|.*/configurator/.*|.*/manual/.*'
+
+ cmd = '%s -p "%s" -s %s -c foovariant.confml --variant-id=123 -r %s --find-layer-regexp=\"%s\"' % (get_cmd('initvariant'), PROJECT_DIR, ROOT_CONFIG, TEST_CPF, FIND_LAYER_REGEXP)
+ self.run_command(cmd)
+
+ self.assert_dir_contents_equal(PROJECT_DIR, EXPECTED_DIR, ['.svn', '.metadata'])
+ self.assertEquals(self._get_active_configuration(PROJECT_DIR), None)
+
+ # test that when root config in cpf has ONE ctr code defined, a matching updated root config is
+ # found from target project and the target root config is created accordingly
+ def test_initvariant_with_one_matching_ctr_code(self):
+ PROJECT_DIR, EXPECTED_DIR = self._prepare_workdir('var6', 'test_project2.zip', 'expected6.zip')
+ TEST_CPF = os.path.join(TESTDATA_DIR, 'test_project.cpf')
+ ROOT_CONFIG = 'testprod_custvariant_04_root.confml'
+ FIND_LAYER_REGEXP = r'.*custvar[^/].*|.*/configurator/.*|.*/manual/.*'
+
+ cmd = '%s -p "%s" -s %s -c foovariant.confml --variant-id=123 -r %s --find-layer-regexp=\"%s\"' % (get_cmd('initvariant'), PROJECT_DIR, ROOT_CONFIG, TEST_CPF, FIND_LAYER_REGEXP)
self.run_command(cmd)
self.assert_dir_contents_equal(PROJECT_DIR, EXPECTED_DIR, ['.svn', '.metadata'])
self.assertEquals(self._get_active_configuration(PROJECT_DIR), None)
-
if __name__ == '__main__':
unittest.main()