Co-authored-by: Clément Drouin <clement.drouin@mistral.ai>
Co-authored-by: Corentin André <corentin.andre@mistral.ai>
Co-authored-by: Guillaume LE GOFF <guillaume.lgf@gmail.com>
Co-authored-by: Kim-Adeline Miguel <51720070+kimadeline@users.noreply.github.com>
Co-authored-by: Maxime Dolores <maxime.dolores@ext.mistral.ai>
Co-authored-by: Nelson PROIA <144663685+Nelson-PROIA@users.noreply.github.com>
Co-authored-by: Peter Evers <pevers90@gmail.com>
Co-authored-by: Pierre Rossinès <pierre.rossines@mistral.ai>
Co-authored-by: Quentin <quentin.torroba@mistral.ai>
Co-authored-by: Vincent G <10739306+VinceOPS@users.noreply.github.com>
Co-authored-by: MichisGitIsKing <MichisGitIsKing@users.noreply.github.com>
Co-authored-by: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
Mathias Gesbert 2026-05-19 11:56:25 +02:00 committed by GitHub
parent 626f905186
commit 228f3c65a9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
158 changed files with 7235 additions and 916 deletions

View file

@ -0,0 +1,82 @@
from __future__ import annotations
import subprocess
import tomllib
from scripts import prepare_release
def test_pin_dependencies_preserves_toml_format_and_refreshes_lock(
monkeypatch, tmp_path
):
pyproject_path = tmp_path / "pyproject.toml"
pyproject_path.write_text(
"""[project]
name = "mistral-vibe"
version = "2.9.6"
license = { text = "Apache-2.0" }
authors = [{ name = "Mistral AI" }]
dependencies = [
"httpx[http2]>=0.28.1",
]
[dependency-groups]
build = ["pyinstaller>=6.17.0"]
[tool.pytest.ini_options]
filterwarnings = [
# Keep this comment when pinning dependencies.
"ignore:example",
]
""",
encoding="utf-8",
)
(tmp_path / "uv.lock").write_text("", encoding="utf-8")
monkeypatch.chdir(tmp_path)
def fake_get_pinned_dependencies(group=None):
if group == "build":
return ["pyinstaller==6.17.0", "truststore==0.10.4"]
return ["anyio==4.12.0", 'httpx[http2]==0.28.1 ; python_version >= "3.12"']
uv_commands = []
def fake_subprocess_run(args, **kwargs):
uv_commands.append(args)
return subprocess.CompletedProcess(args=args, returncode=0, stdout="")
git_commands = []
def fake_run_git_command(*args, **kwargs):
git_commands.append(args)
return subprocess.CompletedProcess(args=args, returncode=0, stdout="")
monkeypatch.setattr(
prepare_release, "get_pinned_dependencies", fake_get_pinned_dependencies
)
monkeypatch.setattr(prepare_release.subprocess, "run", fake_subprocess_run)
monkeypatch.setattr(prepare_release, "run_git_command", fake_run_git_command)
prepare_release.pin_dependencies("2.9.6")
updated_pyproject = pyproject_path.read_text(encoding="utf-8")
updated_data = tomllib.loads(updated_pyproject)
assert 'license = { text = "Apache-2.0" }' in updated_pyproject
assert 'authors = [{ name = "Mistral AI" }]' in updated_pyproject
assert "# Keep this comment when pinning dependencies." in updated_pyproject
assert updated_data["project"]["dependencies"] == [
"anyio==4.12.0",
'httpx[http2]==0.28.1 ; python_version >= "3.12"',
]
assert updated_data["dependency-groups"]["build"] == [
"pyinstaller==6.17.0",
"truststore==0.10.4",
]
assert uv_commands == [["uv", "lock"]]
assert ("add", "pyproject.toml", "uv.lock") in git_commands
assert (
"commit",
"--allow-empty",
"-m",
"chore: pin dependencies for v2.9.6",
) in git_commands