34 lines
1.2 KiB
Python
34 lines
1.2 KiB
Python
|
|
from __future__ import annotations
|
||
|
|
|
||
|
|
from app.services.wine_probe import interpret_wine_probe_output
|
||
|
|
|
||
|
|
|
||
|
|
def test_interpret_wine_probe_output_marks_wine32_warning_unavailable() -> None:
|
||
|
|
output = (
|
||
|
|
"it looks like wine32 is missing, you should install it. multiarch needs to be enabled first.\n"
|
||
|
|
'as root, please execute "dpkg --add-architecture i386 && apt-get update && apt-get install wine32:i386"\n'
|
||
|
|
"wine-10.0 (Debian 10.0~repack-6)"
|
||
|
|
)
|
||
|
|
|
||
|
|
result = interpret_wine_probe_output(0, output)
|
||
|
|
|
||
|
|
assert result.available is False
|
||
|
|
assert result.version == output
|
||
|
|
assert result.error == output
|
||
|
|
|
||
|
|
|
||
|
|
def test_interpret_wine_probe_output_accepts_normal_version() -> None:
|
||
|
|
result = interpret_wine_probe_output(0, "wine-10.0 (Debian 10.0~repack-6)")
|
||
|
|
|
||
|
|
assert result.available is True
|
||
|
|
assert result.version == "wine-10.0 (Debian 10.0~repack-6)"
|
||
|
|
assert result.error is None
|
||
|
|
|
||
|
|
|
||
|
|
def test_interpret_wine_probe_output_propagates_nonzero_exit() -> None:
|
||
|
|
result = interpret_wine_probe_output(1, "wine: failed to load")
|
||
|
|
|
||
|
|
assert result.available is False
|
||
|
|
assert result.version == "wine: failed to load"
|
||
|
|
assert result.error == "wine: failed to load"
|