From e82df10c564f7d7f816ca6fca296f673e8be9f61 Mon Sep 17 00:00:00 2001 From: ZZX Date: Tue, 18 Mar 2025 17:37:05 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=96=B0=E5=A2=9Epytest=E7=94=A8=E4=BE=8B?= =?UTF-8?q?=E5=85=A5=E5=8F=A3=EF=BC=8C=E4=BB=A5=E5=8F=8A=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=AF=B9listcmd=E7=B1=BB=E7=9A=84=E5=8D=95=E5=85=83=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- unittest/run_tests.sh | 21 +++++++++++++++ unittest/test_list_cmd.py | 52 +++++++++++++++++++++++++++++++++++++ unittest/test_run_action.py | 4 +-- 3 files changed, 74 insertions(+), 3 deletions(-) create mode 100755 unittest/run_tests.sh create mode 100644 unittest/test_list_cmd.py diff --git a/unittest/run_tests.sh b/unittest/run_tests.sh new file mode 100755 index 0000000..b30bc5a --- /dev/null +++ b/unittest/run_tests.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +# 获取脚本绝对路径 +SCRIPT_PATH=$(readlink -f "$0") +SCRIPT_DIR=$(dirname "$SCRIPT_PATH") +PROJECT_ROOT="$SCRIPT_DIR/../oedp" + +# 设置Python环境变量 +export PYTHONPATH="$PROJECT_ROOT:$PYTHONPATH" + +# 执行测试用例 +coverage run -m pytest + +# 检查执行结果 +if [ $? -eq 0 ]; then + echo "所有测试用例执行成功" + coverage report +else + echo "部分测试用例执行失败" + exit 1 +fi \ No newline at end of file diff --git a/unittest/test_list_cmd.py b/unittest/test_list_cmd.py new file mode 100644 index 0000000..ba98bfd --- /dev/null +++ b/unittest/test_list_cmd.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2024 Huawei Technologies Co., Ltd. +# oeDeploy is licensed under the Mulan PSL v2. + +import unittest +import os +import tempfile +from unittest.mock import patch +from src.commands.list.list_cmd import ListCmd +from src.exceptions.config_exception import ConfigException + +class TestListCmd(unittest.TestCase): + def setUp(self): + self.test_dir = tempfile.TemporaryDirectory() + self.valid_plugin = os.path.join(self.test_dir.name, "test_plugin.tar.gz") + open(self.valid_plugin, 'a').close() + + def tearDown(self): + self.test_dir.cleanup() + + def test_run_with_invalid_source(self): + """测试无效源目录""" + lc = ListCmd("/non/existent/path") + self.assertFalse(lc.run()) + + def test_run_with_empty_source(self): + """测试空插件目录""" + lc = ListCmd(self.test_dir.name) + self.assertTrue(lc.run()) + + @patch('src.utils.main_reader.MainReader.get_name') + @patch('src.utils.main_reader.MainReader.get_version') + @patch('src.utils.main_reader.MainReader.get_description') + def test_run_with_valid_plugin(self, mock_desc, mock_ver, mock_name): + """测试有效插件解析""" + mock_name.return_value = "TestPlugin" + mock_ver.return_value = "1.0.0" + mock_desc.return_value = "Test Description" + + lc = ListCmd(self.test_dir.name) + self.assertTrue(lc.run()) + + @patch('src.utils.main_reader.MainReader.get_name') + def test_run_with_invalid_plugin(self, mock_name): + """测试无效插件文件""" + mock_name.side_effect = ConfigException("Invalid config") + + lc = ListCmd(self.test_dir.name) + self.assertTrue(lc.run()) + +if __name__ == '__main__': + unittest.main() diff --git a/unittest/test_run_action.py b/unittest/test_run_action.py index d8f4339..602472a 100644 --- a/unittest/test_run_action.py +++ b/unittest/test_run_action.py @@ -11,7 +11,7 @@ # Create: 2025-03-17 # ====================================================================================================================== - +#run as:PYTHONPATH=/home/xxx/openeuler_repos/oeDeploy/oedp coverage run -m pytest import unittest from unittest.mock import patch, MagicMock @@ -63,5 +63,3 @@ class TestRunAction(unittest.TestCase): self.assertTrue(result) self.assertIn('Skipping task', log.output[0]) -if __name__ == '__main__': - unittest.main() -- Gitee From cc596cd30e09dc2a60331ee8d752e1a0d56a5a60 Mon Sep 17 00:00:00 2001 From: ZZX Date: Tue, 18 Mar 2025 17:43:04 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- unittest/test_list_cmd.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/unittest/test_list_cmd.py b/unittest/test_list_cmd.py index ba98bfd..721d1b0 100644 --- a/unittest/test_list_cmd.py +++ b/unittest/test_list_cmd.py @@ -47,6 +47,3 @@ class TestListCmd(unittest.TestCase): lc = ListCmd(self.test_dir.name) self.assertTrue(lc.run()) - -if __name__ == '__main__': - unittest.main() -- Gitee