[Feat] Change data path into /data
This commit is contained in:
@ -22,7 +22,10 @@ class TestServiceFactory(unittest.TestCase):
|
||||
class TestServiceRepository(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.temp_dir = tempfile.TemporaryDirectory()
|
||||
self.repo_path = os.path.join(self.temp_dir.name, "services.json")
|
||||
# 在临时目录下创建 data 子目录
|
||||
data_dir = os.path.join(self.temp_dir.name, "data")
|
||||
os.makedirs(data_dir, exist_ok=True)
|
||||
self.repo_path = os.path.join(data_dir, "services.json")
|
||||
self.repo = ServiceRepository(self.repo_path)
|
||||
|
||||
def tearDown(self):
|
||||
|
@ -126,25 +126,21 @@ class TestServiceOperation(unittest.TestCase):
|
||||
self.assertEqual(result, 0)
|
||||
mock_warning.assert_called()
|
||||
|
||||
@patch("src.services.get_operation", return_value=0)
|
||||
@patch("src.services.SystemServiceStrategy.execute")
|
||||
@patch("src.services.SystemServiceStrategy.generate_command", return_value=["sudo", "systemctl", "stop", "nginx"])
|
||||
@patch("src.services.SystemServiceStrategy.execute")
|
||||
@patch("src.services.logger.info")
|
||||
@patch("src.services.SystemServiceStrategy.execute")
|
||||
@patch("src.services.SystemServiceStrategy.generate_command")
|
||||
@patch("src.services.get_operation", return_value=0)
|
||||
def test_service_operation(self, mock_get_operation, mock_generate, mock_execute, mock_info):
|
||||
@patch("src.services.logger.info")
|
||||
def test_service_operation(self, mock_info, mock_get_operation, mock_generate, mock_execute):
|
||||
"""测试服务操作流程"""
|
||||
service = Service(tag="sys", name="nginx")
|
||||
service.service_operation()
|
||||
|
||||
# 修复:generate_command 需要 self 参数
|
||||
mock_generate.assert_called_with(0, "nginx", None)
|
||||
# 验证调用
|
||||
mock_get_operation.assert_called_once()
|
||||
mock_generate.assert_called_with(0, "nginx")
|
||||
mock_execute.assert_called_with(["sudo", "systemctl", "stop", "nginx"])
|
||||
mock_info.assert_any_call("Executing: sudo systemctl stop nginx")
|
||||
mock_info.assert_any_call("Service nginx operation completed")
|
||||
mock_info.assert_any_call("Executing: sudo systemctl stop nginx")
|
||||
mock_info.assert_any_call("Service nginx operation completed")
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
Reference in New Issue
Block a user