auto_agent/backend/tests/test_sample_app_bridge.py
2521690 a0f7152e80 feat(mvp): 接入真实样板应用桥接并推进演示主线
- 新增 `sample-apps/order-service` Java 样板应用及 Win/Linux 构建、启停、状态脚本
- 新增 `LocalSampleAppService`,在 `software-a` 中支持 `order-service test` 本地桥接部署
- 增加桥接开关配置:`ENABLE_SAMPLE_APP_BRIDGE`、`SAMPLE_APP_ROOT`
- 修正后端配置读取方式,环境变量可在运行时生效(`Settings` 改为 `default_factory`)
- 更新应用元数据默认验证目标:`127.0.0.1:18080`、本地日志路径
- 新增桥接测试 `test_sample_app_bridge.py`,后端基线更新至 `24 passed`
- 更新 `.gitignore`,忽略样板应用 `build/runtime` 产物
- 更新 README 与《当前进度总结》:记录本轮“真实样板应用 + 桥接能力”进展,MVP 进度约 `97%`
2026-04-09 15:45:03 +08:00

33 lines
1.3 KiB
Python

import os
from unittest.mock import patch
from app.schemas.software_a import CreateDeployTaskRequest, DeployOptions, SoftwareAOperator
from app.services.software_a_service import SoftwareAService
def test_sample_app_bridge_can_be_enabled() -> None:
os.environ["ENABLE_SAMPLE_APP_BRIDGE"] = "true"
try:
with patch("app.services.software_a_service.LocalSampleAppService.deploy_order_service") as mocked_deploy:
mocked_deploy.return_value = {
"running": True,
"status_text": "RUNNING",
"return_code": 0,
}
payload = CreateDeployTaskRequest(
operator=SoftwareAOperator(user_id="u1001", user_name="alice"),
tenant_id="tenant-demo",
app_code="order-service",
env="test",
version="1.2.3",
target_nodes=["127.0.0.1"],
deploy_options=DeployOptions(graceful=True),
)
result = SoftwareAService("Asia/Shanghai").create_deploy_task(payload)
assert result["task_status"] == "RUNNING"
assert result["sample_app_result"]["running"] is True
mocked_deploy.assert_called_once()
finally:
os.environ["ENABLE_SAMPLE_APP_BRIDGE"] = "false"