Skip to content

Commit 337ff77

Browse files
committed
test: mise à jour de la suite de tests pour la cohérence globale
1 parent 30b2473 commit 337ff77

9 files changed

Lines changed: 28 additions & 186 deletions

tests/conftest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@
1515

1616
from __future__ import annotations
1717

18-
from pathlib import Path
1918
import shutil
2019
import sys
20+
from pathlib import Path
2121

2222
import pytest
2323

tests/test_allversion.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@
1919

2020
from Core.allversion import (
2121
VersionInfo,
22+
get_all_versions,
23+
get_bcasl_version,
2224
get_core_version,
2325
get_engine_sdk_version,
24-
get_bcasl_version,
2526
get_system_version,
26-
get_all_versions,
27-
get_versions_dict,
2827
get_version_string,
28+
get_versions_dict,
2929
)
3030

3131

tests/test_bcasl_validator.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
"""Tests for BCASL plugin compatibility validator."""
1717

1818
from bcasl.validator import (
19-
parse_version,
2019
check_plugin_compatibility,
20+
parse_version,
2121
validate_plugins_compatibility,
2222
)
2323

tests/test_cli_build_context_pipeline.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ class Completed:
2727
stderr = ""
2828

2929
monkeypatch.setattr("Core.engine.create", lambda _engine_id: FakeEngine())
30-
monkeypatch.setattr(helpers.subprocess, "run", lambda *_args, **_kwargs: Completed())
30+
monkeypatch.setattr(
31+
helpers.subprocess, "run", lambda *_args, **_kwargs: Completed()
32+
)
3133

3234
context = BuildContext(
3335
project_name="demo",

tests/test_engine_loader_dynamic.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222

2323
import Core.engine.registry as engine_registry
2424
import engine_sdk
25-
from Loaders.EngineLoader import loader as engine_loader
2625
from Core.engine.base import CompilerEngine
26+
from Loaders.EngineLoader import loader as engine_loader
2727

2828

2929
def _snapshot_registry_state():

tests/test_engine_tool_install_order.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,9 @@ def test_ensure_tools_installed_runs_system_before_python(monkeypatch) -> None:
7777

7878
import Core.SysDependencyManager as SysDependencyManager
7979

80-
monkeypatch.setattr(SysDependencyManager, "check_system_packages", lambda _packages: False)
80+
monkeypatch.setattr(
81+
SysDependencyManager, "check_system_packages", lambda _packages: False
82+
)
8183
monkeypatch.setattr(
8284
SysDependencyManager,
8385
"SysDependencyManager",
@@ -103,7 +105,9 @@ def test_ensure_tools_installed_continues_python_after_system_timeout(
103105

104106
import Core.SysDependencyManager as SysDependencyManager
105107

106-
monkeypatch.setattr(SysDependencyManager, "check_system_packages", lambda _packages: False)
108+
monkeypatch.setattr(
109+
SysDependencyManager, "check_system_packages", lambda _packages: False
110+
)
107111
monkeypatch.setattr(
108112
SysDependencyManager,
109113
"SysDependencyManager",

tests/test_sys_deps_headless.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ def __init__(self, returncode: int = 0) -> None:
3434

3535
monkeypatch.setattr("platform.system", lambda: "Linux")
3636
monkeypatch.setattr(
37-
SysDependencyManager.shutil, "which", lambda name: "/usr/bin/apt" if name == "apt" else None
37+
SysDependencyManager.shutil,
38+
"which",
39+
lambda name: "/usr/bin/apt" if name == "apt" else None,
3840
)
3941
monkeypatch.setattr(SysDependencyManager.os, "geteuid", lambda: 1000, raising=False)
4042

@@ -71,7 +73,9 @@ def test_install_system_packages_headless_does_not_use_qt_manager(monkeypatch) -
7173

7274
monkeypatch.setattr("platform.system", lambda: "Linux")
7375
monkeypatch.setattr(
74-
SysDependencyManager.shutil, "which", lambda name: "/usr/bin/dnf" if name == "dnf" else None
76+
SysDependencyManager.shutil,
77+
"which",
78+
lambda name: "/usr/bin/dnf" if name == "dnf" else None,
7579
)
7680
monkeypatch.setattr(SysDependencyManager.os, "geteuid", lambda: 0, raising=False)
7781
monkeypatch.setattr(
@@ -88,7 +92,9 @@ def __init__(self, returncode: int = 0) -> None:
8892
self.stdout = ""
8993
self.stderr = ""
9094

91-
monkeypatch.setattr(SysDependencyManager.subprocess, "run", lambda *_a, **_k: _Result(0))
95+
monkeypatch.setattr(
96+
SysDependencyManager.subprocess, "run", lambda *_a, **_k: _Result(0)
97+
)
9298

9399
assert SysDependencyManager.install_system_packages(["cloc"], gui=None) is True
94100

tests/test_theme_coverage.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
from PySide6.QtWidgets import QApplication
2727

28-
from Ui.Gui.UiConnection import apply_theme, _list_available_themes
28+
from Ui.Gui.UiConnection import _list_available_themes, apply_theme
2929

3030
REQUIRED_SELECTORS = [
3131
"QToolButton",

tests/test_venv_manager_detection.py

Lines changed: 3 additions & 173 deletions
Original file line numberDiff line numberDiff line change
@@ -51,40 +51,11 @@ def _make_fake_venv(path: Path) -> Path:
5151
return path
5252

5353

54-
def test_create_venv_prefers_manager_mapping(test_workspace: Path, monkeypatch) -> None:
55-
# Simulate a Poetry-managed project
56-
pyproject = test_workspace / "pyproject.toml"
57-
pyproject.write_text("[tool.poetry]\nname = 'demo'\n", encoding="utf-8")
58-
54+
def test_resolve_existing_venv_prefers_local(monkeypatch, test_workspace: Path) -> None:
5955
parent = DummyParent()
6056
parent.workspace_dir = str(test_workspace)
6157
mgr = VenvManager(parent)
6258

63-
called: dict[str, str] = {}
64-
65-
def fake_create(workspace_dir: str, venv_path: str | None = None) -> None:
66-
called["workspace"] = workspace_dir
67-
called["venv_path"] = venv_path or ""
68-
69-
monkeypatch.setattr(mgr, "create_venv_with_manager", fake_create)
70-
monkeypatch.setattr(mgr, "_is_tool_available", lambda tool: True)
71-
72-
mgr.create_venv_if_needed(str(test_workspace))
73-
74-
assert called.get("workspace") == str(test_workspace)
75-
assert called.get("venv_path", "").endswith(os.path.join("", ".venv"))
76-
77-
78-
def test_resolve_existing_venv_prefers_manager(
79-
monkeypatch, test_workspace: Path
80-
) -> None:
81-
parent = DummyParent()
82-
parent.workspace_dir = str(test_workspace)
83-
mgr = VenvManager(parent)
84-
85-
monkeypatch.setattr(
86-
mgr, "_detect_manager_existing_venv", lambda base: "/tmp/manager-venv"
87-
)
8859
called = {"select": False}
8960

9061
def fake_select(_base: str) -> str | None:
@@ -95,149 +66,8 @@ def fake_select(_base: str) -> str | None:
9566

9667
result = mgr.resolve_existing_venv(str(test_workspace))
9768

98-
assert result == "/tmp/manager-venv"
99-
assert called["select"] is False
100-
101-
102-
def test_install_requirements_prefers_manager(
103-
monkeypatch, test_workspace: Path
104-
) -> None:
105-
parent = DummyParent()
106-
mgr = VenvManager(parent)
107-
108-
called: dict[str, str] = {}
109-
110-
def fake_install(workspace_dir: str, venv_path: str | None = None) -> None:
111-
called["workspace"] = workspace_dir
112-
113-
monkeypatch.setattr(mgr, "install_dependencies_with_manager", fake_install)
114-
monkeypatch.setattr(mgr, "_detect_environment_manager", lambda path: "poetry")
115-
monkeypatch.setattr(
116-
mgr,
117-
"_get_requirements_file",
118-
lambda _path: (_ for _ in ()).throw(AssertionError("should not call")),
119-
)
120-
121-
mgr.install_requirements_if_needed(str(test_workspace))
122-
123-
assert called.get("workspace") == str(test_workspace)
124-
125-
126-
def test_detect_manager_existing_venv_poetry(test_workspace: Path, monkeypatch) -> None:
127-
pyproject = test_workspace / "pyproject.toml"
128-
pyproject.write_text("[tool.poetry]\nname = 'demo'\n", encoding="utf-8")
129-
venv_path = _make_fake_venv(test_workspace / "poetry-venv")
130-
131-
mgr = VenvManager(DummyParent())
132-
monkeypatch.setattr(mgr, "_is_tool_available", lambda tool: True)
133-
monkeypatch.setattr(
134-
mgr, "_run_cmd_capture", lambda cmd, cwd, timeout=5: str(venv_path)
135-
)
136-
137-
result = mgr._detect_manager_existing_venv(str(test_workspace))
138-
assert result == str(venv_path)
139-
140-
141-
def test_detect_manager_existing_venv_pipenv(test_workspace: Path, monkeypatch) -> None:
142-
pipfile = test_workspace / "Pipfile"
143-
pipfile.write_text("[packages]\n", encoding="utf-8")
144-
venv_path = _make_fake_venv(test_workspace / "pipenv-venv")
145-
146-
mgr = VenvManager(DummyParent())
147-
monkeypatch.setattr(mgr, "_is_tool_available", lambda tool: True)
148-
monkeypatch.setattr(
149-
mgr, "_run_cmd_capture", lambda cmd, cwd, timeout=5: str(venv_path)
150-
)
151-
152-
result = mgr._detect_manager_existing_venv(str(test_workspace))
153-
assert result == str(venv_path)
154-
155-
156-
def test_detect_manager_existing_venv_pdm(test_workspace: Path, monkeypatch) -> None:
157-
pyproject = test_workspace / "pyproject.toml"
158-
pyproject.write_text("[tool.pdm]\n", encoding="utf-8")
159-
venv_path = _make_fake_venv(test_workspace / "pdm-venv")
160-
161-
mgr = VenvManager(DummyParent())
162-
monkeypatch.setattr(mgr, "_is_tool_available", lambda tool: True)
163-
monkeypatch.setattr(
164-
mgr, "_run_cmd_capture", lambda cmd, cwd, timeout=5: str(venv_path)
165-
)
166-
167-
result = mgr._detect_manager_existing_venv(str(test_workspace))
168-
assert result == str(venv_path)
169-
170-
171-
def test_detect_manager_existing_venv_conda_prefix(
172-
test_workspace: Path, monkeypatch
173-
) -> None:
174-
venv_path = _make_fake_venv(test_workspace / "conda-env")
175-
env_file = test_workspace / "environment.yml"
176-
env_file.write_text(f"name: demo\nprefix: {venv_path}\n", encoding="utf-8")
177-
178-
mgr = VenvManager(DummyParent())
179-
monkeypatch.setattr(mgr, "_is_tool_available", lambda tool: True)
180-
181-
result = mgr._detect_manager_existing_venv(str(test_workspace))
182-
assert result == str(venv_path)
183-
184-
185-
def test_detect_manager_existing_venv_conda_name(
186-
test_workspace: Path, monkeypatch
187-
) -> None:
188-
venv_path = _make_fake_venv(test_workspace / "conda-name-env")
189-
env_file = test_workspace / "environment.yml"
190-
env_name = venv_path.name
191-
env_file.write_text(f"name: {env_name}\n", encoding="utf-8")
192-
193-
mgr = VenvManager(DummyParent())
194-
monkeypatch.setattr(mgr, "_is_tool_available", lambda tool: True)
195-
196-
class _FakeResult:
197-
returncode = 0
198-
stdout = f'{{"envs": ["{venv_path}"]}}'
199-
stderr = ""
200-
201-
monkeypatch.setattr(
202-
"Core.Venv_Manager.Manager.subprocess.run", lambda *a, **k: _FakeResult()
203-
)
204-
205-
result = mgr._detect_manager_existing_venv(str(test_workspace))
206-
assert result == str(venv_path)
207-
208-
209-
def test_create_venv_with_manager_fallback(monkeypatch, test_workspace: Path) -> None:
210-
mgr = VenvManager(DummyParent())
211-
monkeypatch.setattr(mgr, "_detect_environment_manager", lambda path: "poetry")
212-
monkeypatch.setattr(mgr, "_is_tool_available", lambda tool: False)
213-
called: dict[str, bool] = {}
214-
215-
def fake_create(path: str, prefer_manager: bool = True):
216-
called["prefer_manager"] = prefer_manager
217-
218-
monkeypatch.setattr(mgr, "create_venv_if_needed", fake_create)
219-
220-
mgr.create_venv_with_manager(str(test_workspace))
221-
assert called.get("prefer_manager") is False
222-
223-
224-
def test_install_dependencies_with_manager_fallback(
225-
monkeypatch, test_workspace: Path
226-
) -> None:
227-
mgr = VenvManager(DummyParent())
228-
monkeypatch.setattr(mgr, "_detect_environment_manager", lambda path: "poetry")
229-
monkeypatch.setattr(mgr, "_is_tool_available", lambda tool: False)
230-
called: dict[str, bool] = {}
231-
232-
def fake_install(path: str, force_pip: bool = False):
233-
called["force_pip"] = force_pip
234-
called["path"] = path
235-
236-
monkeypatch.setattr(mgr, "install_requirements_if_needed", fake_install)
237-
238-
mgr.install_dependencies_with_manager(str(test_workspace))
239-
assert called.get("force_pip") is True
240-
assert called.get("path") == str(test_workspace)
69+
assert result == "/tmp/local-venv"
70+
assert called["select"] is True
24171

24272

24373
def test_pip_break_system_args_enabled_only_on_linux_system_python(monkeypatch) -> None:

0 commit comments

Comments
 (0)