configurationengine/source/scripts/tests/unittest_export.py
changeset 5 d2c80f5cab53
parent 3 e7e0ae78773e
equal deleted inserted replaced
4:0951727b8815 5:d2c80f5cab53
   130     def assert_zip_entry_exists(self, zip_file, path):
   130     def assert_zip_entry_exists(self, zip_file, path):
   131         zf = zipfile.ZipFile(zip_file, "r")
   131         zf = zipfile.ZipFile(zip_file, "r")
   132         try:
   132         try:
   133             if path not in zf.namelist():
   133             if path not in zf.namelist():
   134                 self.fail("Entry '%s' not in zip file '%s'." % (path, zipfile))
   134                 self.fail("Entry '%s' not in zip file '%s'." % (path, zipfile))
       
   135         finally:
       
   136             zf.close()
       
   137             
       
   138     def assert_zip_entry_exists_not(self, zip_file, path):
       
   139         zf = zipfile.ZipFile(zip_file, "r")
       
   140         try:
       
   141             if path in zf.namelist():
       
   142                 self.fail("Entry '%s' in zip file '%s'." % (path, zipfile))
   135         finally:
   143         finally:
   136             zf.close()
   144             zf.close()
   137     
   145     
   138     
   146     
   139     def _run_test_export_project_to_project(self,
   147     def _run_test_export_project_to_project(self,
   395             export_format = 'cpf',
   403             export_format = 'cpf',
   396             config_args   = '--config-regex root[14].confml',
   404             config_args   = '--config-regex root[14].confml',
   397             expected_cpfs = [('root1.cpf', 'root1.confml'),
   405             expected_cpfs = [('root1.cpf', 'root1.confml'),
   398                              ('root4.cpf', 'root4.confml')])
   406                              ('root4.cpf', 'root4.confml')])
   399     
   407     
   400 
   408     def test_export_with_include_content_filter_help(self):
       
   409         # test help update
       
   410         cmd = '%s -h' % get_cmd('export')
       
   411         out = self.run_command(cmd)
       
   412         lines = out.split(os.linesep)
       
   413         self.assertTrue('    --include-content-filter=INCLUDE_CONTENT_FILTER' in lines)
       
   414         
       
   415     def test_export_with_include_content_filter_project_to_cpf(self):
       
   416         # test cpf export
       
   417         source = os.path.join(TEMP_DIR, "layers")
       
   418         remote = os.path.join(TEMP_DIR, 'layers.cpf')
       
   419         self.remove_if_exists(remote)
       
   420         
       
   421         unzip_file(EXPORT_TEST_PROJECT, source, delete_if_exists=True)
       
   422 
       
   423         
       
   424         cmd = '%s -p "%s" -c "root4.confml" -r "%s" --include-content-filter="%s"' % (get_cmd('export'), TEST_PROJECT_CPF, remote,".*layer1.*")
       
   425         out = self.run_command(cmd)
       
   426         
       
   427         # layer1 content 
       
   428         self.assert_zip_entry_exists(remote, "root4.confml")
       
   429         self.assert_zip_entry_exists(remote, "Layer1/content/default_file.txt")
       
   430         self.assert_zip_entry_exists(remote, "Layer1/content/seq/def1_file.txt")
       
   431 
       
   432         # filtered content
       
   433         self.assert_zip_entry_exists_not(remote, "Layer2/content/layer2_file.txt")
       
   434         self.assert_zip_entry_exists_not(remote, "Layer3/content/seq/layer3_file.txt")
       
   435         self.assert_zip_entry_exists_not(remote, "Layer4/content/seq/layer4_file.txt")
       
   436 
       
   437     def test_export_with_include_content_filter_cpf_to_cpf(self):
       
   438         # test cpf export
       
   439         remote = os.path.join(TEMP_DIR, 'layers2.cpf')
       
   440         self.remove_if_exists(remote)
       
   441         
       
   442 
       
   443         
       
   444         cmd = '%s -p "%s" -c "root4.confml" -r "%s" --include-content-filter="%s"' % (get_cmd('export'), TEST_PROJECT_CPF, remote,".*layer2.*")
       
   445         out = self.run_command(cmd)
       
   446         
       
   447         # layer1 content 
       
   448         self.assert_zip_entry_exists(remote, "root4.confml")
       
   449         self.assert_zip_entry_exists(remote, "Layer2/content/layer2_file.txt")
       
   450 
       
   451         # filtered content
       
   452         self.assert_zip_entry_exists_not(remote, "Layer1/content/default_file.txt")
       
   453         self.assert_zip_entry_exists_not(remote, "Layer3/content/seq/layer3_file.txt")
       
   454         self.assert_zip_entry_exists_not(remote, "Layer4/content/seq/layer4_file.txt")
       
   455         
       
   456     
   401 class TestExportInvalidArgs(BaseTestCase):
   457 class TestExportInvalidArgs(BaseTestCase):
   402     
   458     
   403     def _run_test_invalid_args(self, args, expected_msg):
   459     def _run_test_invalid_args(self, args, expected_msg):
   404         cmd = '%s -p "%s" %s' \
   460         cmd = '%s -p "%s" %s' \
   405             % (get_cmd('export'), TEST_PROJECT_CPF, args)
   461             % (get_cmd('export'), TEST_PROJECT_CPF, args)