From e4841edbaf2023aea777f634739f27a108d5e303 Mon Sep 17 00:00:00 2001 From: huanghuoguoguo <1051233107@qq.com> Date: Sat, 16 May 2026 11:26:49 +0800 Subject: [PATCH] fix pkgmgr install requirements default (#2190) --- src/langbot/pkg/utils/pkgmgr.py | 5 ++- tests/unit_tests/utils/__init__.py | 1 + tests/unit_tests/utils/test_pkgmgr.py | 58 +++++++++++++++++++++++++++ 3 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 tests/unit_tests/utils/__init__.py create mode 100644 tests/unit_tests/utils/test_pkgmgr.py diff --git a/src/langbot/pkg/utils/pkgmgr.py b/src/langbot/pkg/utils/pkgmgr.py index 9ce8bdb8..549b86d3 100644 --- a/src/langbot/pkg/utils/pkgmgr.py +++ b/src/langbot/pkg/utils/pkgmgr.py @@ -23,7 +23,10 @@ def run_pip(params: list): pipmain(params) -def install_requirements(file, extra_params: list = []): +def install_requirements(file, extra_params: list | None = None): + if extra_params is None: + extra_params = [] + pipmain( [ 'install', diff --git a/tests/unit_tests/utils/__init__.py b/tests/unit_tests/utils/__init__.py new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/tests/unit_tests/utils/__init__.py @@ -0,0 +1 @@ + diff --git a/tests/unit_tests/utils/test_pkgmgr.py b/tests/unit_tests/utils/test_pkgmgr.py new file mode 100644 index 00000000..1678004b --- /dev/null +++ b/tests/unit_tests/utils/test_pkgmgr.py @@ -0,0 +1,58 @@ +import inspect + +from langbot.pkg.utils import pkgmgr + + +def test_install_requirements_defaults_extra_params_to_none(): + signature = inspect.signature(pkgmgr.install_requirements) + + assert signature.parameters['extra_params'].default is None + + +def test_install_requirements_omitted_extra_params_uses_base_command(monkeypatch): + calls = [] + monkeypatch.setattr(pkgmgr, 'pipmain', calls.append) + + pkgmgr.install_requirements('requirements.txt') + pkgmgr.install_requirements('requirements-dev.txt') + + assert calls == [ + [ + 'install', + '-r', + 'requirements.txt', + '-i', + 'https://pypi.tuna.tsinghua.edu.cn/simple', + '--trusted-host', + 'pypi.tuna.tsinghua.edu.cn', + ], + [ + 'install', + '-r', + 'requirements-dev.txt', + '-i', + 'https://pypi.tuna.tsinghua.edu.cn/simple', + '--trusted-host', + 'pypi.tuna.tsinghua.edu.cn', + ], + ] + + +def test_install_requirements_preserves_explicit_extra_params(monkeypatch): + calls = [] + monkeypatch.setattr(pkgmgr, 'pipmain', calls.append) + + pkgmgr.install_requirements('requirements.txt', extra_params=['--no-deps']) + + assert calls == [ + [ + 'install', + '-r', + 'requirements.txt', + '-i', + 'https://pypi.tuna.tsinghua.edu.cn/simple', + '--trusted-host', + 'pypi.tuna.tsinghua.edu.cn', + '--no-deps', + ] + ]