Files
wehub-resource-sync a0c8464e58
Build Package / build (ubuntu-latest) (push) Failing after 1s
CodeQL / Analyze (python) (push) Failing after 1s
Core Typecheck / core-typecheck (push) Failing after 1s
Linting / lint (push) Failing after 1s
llama-dev tests / test-llama-dev (push) Failing after 1s
Publish Sub-Package to PyPI if Needed / publish_subpackage_if_needed (push) Has been skipped
Sync Docs to Developer Hub / sync-docs (push) Failing after 0s
Build Package / build (windows-latest) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:26:52 +08:00

121 lines
4.1 KiB
Python

import builtins
from unittest import mock
from click.testing import CliRunner
from llama_dev.cli import cli
from llama_dev.pkg.bump import BumpType, bump_version, update_pyproject_version
def test_bump_version():
assert bump_version("0.0", BumpType.PATCH) == "0.0.1"
assert bump_version("0.0", BumpType.MINOR) == "0.1.0"
assert bump_version("1.0.0", BumpType.MAJOR) == "2.0.0"
def test_update_pyproject_version(data_path):
pkg = data_path / "llama-index-utils/util"
# Use the true open if it's the first call
real_open = open
mocked_open = mock.mock_open(read_data='[project]\nversion = "1.0.0"\n')
mocked_open.side_effect = (
lambda *args, **kwargs: real_open(*args, **kwargs)
if mocked_open.call_count == 0
else mock.DEFAULT
)
with mock.patch.object(builtins, "open", mocked_open):
update_pyproject_version(pkg, "99.0.0")
# Ensure open is called in both read and write modes
mocked_open.assert_any_call(pkg / "pyproject.toml", "r")
mocked_open.assert_any_call(pkg / "pyproject.toml", "w")
# Expect the version to be updated in the string that's attempted to be written
assert 'version = "99.0.0"' in mocked_open().write.call_args[0][0]
def test_bump_command_no_arguments():
runner = CliRunner()
result = runner.invoke(cli, ["pkg", "bump"])
assert result.exit_code != 0
assert "Either specify package name(s) or use the --all flag" in result.output
def test_bump_command_with_all_flag():
runner = CliRunner()
with (
mock.patch(
"llama_dev.pkg.bump.find_all_packages",
return_value={"package1", "package2"},
),
mock.patch(
"llama_dev.pkg.bump.load_pyproject",
return_value={"project": {"version": "1.0.0", "name": "package1"}},
),
mock.patch(
"llama_dev.pkg.bump.update_pyproject_version"
) as mock_update_version,
):
result = runner.invoke(cli, ["pkg", "bump", "--all"])
assert result.exit_code == 0
assert mock_update_version.call_count == 2
def test_bump_command_specific_packages(data_path):
runner = CliRunner()
with (
mock.patch(
"llama_dev.pkg.bump.load_pyproject",
return_value={"project": {"version": "1.0.0", "name": "package1"}},
),
mock.patch("llama_dev.pkg.bump.is_llama_index_package", return_value=True),
mock.patch(
"llama_dev.pkg.bump.update_pyproject_version"
) as mock_update_version,
):
result = runner.invoke(cli, ["pkg", "bump", f"{data_path / 'package1'}"])
assert result.exit_code == 0
mock_update_version.assert_called_once_with(data_path / "package1", "1.0.1")
def test_bump_command_specific_packages_dry_run(data_path):
runner = CliRunner()
with (
mock.patch(
"llama_dev.pkg.bump.load_pyproject",
return_value={"project": {"version": "1.0.0", "name": "package1"}},
),
mock.patch("llama_dev.pkg.bump.is_llama_index_package", return_value=True),
mock.patch(
"llama_dev.pkg.bump.update_pyproject_version"
) as mock_update_version,
):
result = runner.invoke(
cli, ["pkg", "bump", f"{data_path / 'package1'}", "--dry-run"]
)
assert result.exit_code == 0
mock_update_version.assert_not_called()
assert "Would bump tests/data/package1 from 1.0.0 to 1.0.1" in result.output
def test_bump_command_specific_packages_not_a_package(data_path):
runner = CliRunner()
with (
mock.patch(
"llama_dev.pkg.bump.load_pyproject",
return_value={"project": {"version": "1.0.0", "name": "package1"}},
),
mock.patch("llama_dev.pkg.bump.is_llama_index_package", return_value=False),
mock.patch(
"llama_dev.pkg.bump.update_pyproject_version"
) as mock_update_version,
):
result = runner.invoke(cli, ["pkg", "bump", f"{data_path / 'package1'}"])
assert result.exit_code != 0
mock_update_version.assert_not_called()
assert "package1 is not a path to a LlamaIndex package" in result.output