Files
insistence 9f7a0daa3b feat: 新增cli系统 (#103)
* feat: 新增cli系统

* feat: ruoyi completion支持powershell

* perf: 优化tui显示

* fix: 修复前端构建异常
2026-05-13 11:19:31 +08:00

45 lines
1.7 KiB
Python

from pathlib import Path
from cli.core.app_builder import ProjectRuntimeLocator
from cli.runtime.base import RUNTIME_ENVIRONMENT
from cli.utils import NestedCliProjectLocator
def test_backend_project_dir_detection_uses_consistent_rule(tmp_path: Path) -> None:
"""
校验不同入口的后端目录判定规则保持一致。
:param tmp_path: pytest 临时目录
:return: None
"""
(tmp_path / 'app.py').write_text('', encoding='utf-8')
(tmp_path / 'config').mkdir()
(tmp_path / 'config' / 'env.py').write_text('', encoding='utf-8')
(tmp_path / 'cli').mkdir()
project_runtime_locator = ProjectRuntimeLocator()
nested_cli_project_locator = NestedCliProjectLocator()
assert RUNTIME_ENVIRONMENT.is_backend_project_dir(tmp_path) is True
assert project_runtime_locator.is_backend_project_dir(tmp_path) is True
assert nested_cli_project_locator.is_backend_project_dir(tmp_path) is True
def test_backend_project_dir_detection_rejects_directory_without_cli_package(tmp_path: Path) -> None:
"""
校验缺少 cli 目录时不会被误判为后端项目根目录。
:param tmp_path: pytest 临时目录
:return: None
"""
(tmp_path / 'app.py').write_text('', encoding='utf-8')
(tmp_path / 'config').mkdir()
(tmp_path / 'config' / 'env.py').write_text('', encoding='utf-8')
project_runtime_locator = ProjectRuntimeLocator()
nested_cli_project_locator = NestedCliProjectLocator()
assert RUNTIME_ENVIRONMENT.is_backend_project_dir(tmp_path) is False
assert project_runtime_locator.is_backend_project_dir(tmp_path) is False
assert nested_cli_project_locator.is_backend_project_dir(tmp_path) is False