35 lines
981 B
Python
35 lines
981 B
Python
import subprocess
|
|
|
|
import pytest
|
|
|
|
from l4d2host.steam_install import SteamInstaller
|
|
|
|
|
|
def test_windows_then_linux(monkeypatch: pytest.MonkeyPatch) -> None:
|
|
calls: list[list[str]] = []
|
|
|
|
def fake_run_command(cmd, **kwargs):
|
|
del kwargs
|
|
calls.append(list(cmd))
|
|
|
|
monkeypatch.setattr("l4d2host.steam_install.run_command", fake_run_command)
|
|
SteamInstaller().install_or_update()
|
|
assert "windows" in calls[0]
|
|
assert "linux" in calls[1]
|
|
|
|
|
|
def test_fail_fast_on_first_failure(monkeypatch: pytest.MonkeyPatch) -> None:
|
|
calls: list[list[str]] = []
|
|
|
|
def fake_run_command(cmd, **kwargs):
|
|
del kwargs
|
|
calls.append(list(cmd))
|
|
if len(calls) == 1:
|
|
raise subprocess.CalledProcessError(returncode=1, cmd=cmd)
|
|
|
|
monkeypatch.setattr("l4d2host.steam_install.run_command", fake_run_command)
|
|
|
|
with pytest.raises(subprocess.CalledProcessError):
|
|
SteamInstaller().install_or_update()
|
|
|
|
assert len(calls) == 1
|