From b4e6a756ebeb019048cb03a0562534870b772cae Mon Sep 17 00:00:00 2001 From: Stamatis Katsaounis Date: Tue, 19 Feb 2019 12:38:10 +0200 Subject: Calculate checksum for input VNF This patch adds checksum information inside ONAP related test case run results. The checksum is produced by the VNF input which can either be a CSAR file or an archive of Heat templates. Change-Id: I0ed58bdc9cc4031da08fd2ac220ef294520ef447 Signed-off-by: Stamatis Katsaounis --- dovetail/tests/unit/test_report.py | 47 ++++++++++++++++++++++++++++++++- dovetail/tests/unit/test_test_runner.py | 6 ++--- 2 files changed, 49 insertions(+), 4 deletions(-) (limited to 'dovetail/tests') diff --git a/dovetail/tests/unit/test_report.py b/dovetail/tests/unit/test_report.py index be56e15c..e44c6ac8 100644 --- a/dovetail/tests/unit/test_report.py +++ b/dovetail/tests/unit/test_report.py @@ -225,7 +225,9 @@ class ReportTesting(unittest.TestCase): @patch('dovetail.report.datetime.datetime') @patch('dovetail.report.dt_cfg') - def test_generate_json_no_list(self, mock_config, mock_datetime): + @patch.object(dt_report.Report, 'get_checksum') + def test_generate_json_no_list(self, mock_checksum, mock_config, + mock_datetime): logger_obj = Mock() report = dt_report.Report() report.logger = logger_obj @@ -238,12 +240,14 @@ class ReportTesting(unittest.TestCase): utc_obj = Mock() utc_obj.strftime.return_value = '2018-01-13 13:13:13 UTC' mock_datetime.utcnow.return_value = utc_obj + mock_checksum.return_value = 'da39a3ee5e6b4b0d3255bfef95601890afd80709' result = report.generate_json([], duration) expected = { 'version': '2018.09', 'build_tag': 'build_tag', 'vnf_type': 'tosca', + 'vnf_checksum': 'da39a3ee5e6b4b0d3255bfef95601890afd80709', 'test_date': '2018-01-13 13:13:13 UTC', 'duration': duration, 'testcases_list': [] @@ -1466,3 +1470,44 @@ class ReportTesting(unittest.TestCase): dt_report.OnapVvpChecker.check(testcase_obj, result) testcase_obj.passed.assert_called_once_with('PASS') + + @patch('dovetail.report.dt_cfg') + @patch('dovetail.report.os.path') + @patch('__builtin__.open') + @patch('dovetail.report.os.getenv') + def test_get_checksum_tosca(self, mock_env, mock_open, mock_path, + mock_config): + mock_config.dovetail_config = { + 'config_dir': 'config_dir' + } + mock_env.return_value = 'csar_file' + file_obj = Mock() + file_obj.read.return_value = 'info' + file_obj.__exit__ = Mock() + file_obj.__enter__ = Mock() + mock_open.return_value = file_obj + mock_path.isdir.return_value = False + mock_path.isfile.return_value = True + + dt_report.Report.get_checksum('tosca') + + @patch('dovetail.report.dt_cfg') + @patch('dovetail.report.os.path') + @patch('dovetail.report.os.walk') + @patch('__builtin__.open') + @patch('dovetail.report.os.getenv') + def test_get_checksum_heat(self, mock_env, mock_open, mock_walk, mock_path, + mock_config): + mock_config.dovetail_config = { + 'config_dir': 'config_dir' + } + mock_env.return_value = 'heat_templates_archive' + file_obj = Mock() + file_obj.read.return_value = 'info' + file_obj.__exit__ = Mock() + file_obj.__enter__ = Mock() + mock_open.return_value = file_obj + mock_path.isdir.return_value = True + mock_walk.return_value = [('root', ['dir'], ['file'])] + + dt_report.Report.get_checksum('heat') diff --git a/dovetail/tests/unit/test_test_runner.py b/dovetail/tests/unit/test_test_runner.py index 345dfd65..a40e3cb1 100644 --- a/dovetail/tests/unit/test_test_runner.py +++ b/dovetail/tests/unit/test_test_runner.py @@ -324,7 +324,7 @@ class TestRunnerTesting(unittest.TestCase): def test_add_testcase_info(self, mock_os, mock_config): mock_os.getenv.side_effect = ['os_insecure', 'dovetail_home', 'debug', 'os_cacert', 'host_url', 'csar_file', - 'heat_templates_dir'] + 'heat_templates_archive'] mock_os.environ = {'DEPLOY_SCENARIO': 'deploy_scenario'} mock_config.dovetail_config = {'build_tag': 'build_tag'} @@ -335,7 +335,7 @@ class TestRunnerTesting(unittest.TestCase): 'dovetail_home': 'dovetail_home', 'debug': 'debug', 'build_tag': 'build_tag', 'cacert': 'os_cacert', 'host_url': 'host_url', 'csar_file': 'csar_file', - 'heat_templates_dir': 'heat_templates_dir' + 'heat_templates_archive': 'heat_templates_archive' } result = t_runner.FunctestRunner._add_testcase_info(self.testcase) @@ -344,7 +344,7 @@ class TestRunnerTesting(unittest.TestCase): mock_os.getenv.assert_has_calls([ call('OS_INSECURE'), call('DOVETAIL_HOME'), call('DEBUG'), call('OS_CACERT'), call('HOST_URL'), call('CSAR_FILE'), - call('VNF_DIRECTORY')]) + call('VNF_ARCHIVE_NAME')]) self.assertEquals(expected, result) @patch('dovetail.test_runner.dt_utils') -- cgit 1.2.3-korg