31 lines
845 B
Python
31 lines
845 B
Python
"""Tests for flow.core.platform."""
|
|
|
|
import platform as _platform
|
|
|
|
import pytest
|
|
|
|
from flow.core.platform import PlatformInfo, detect_platform
|
|
|
|
|
|
def test_detect_platform_returns_platforminfo():
|
|
info = detect_platform()
|
|
assert isinstance(info, PlatformInfo)
|
|
assert info.os in ("linux", "macos")
|
|
assert info.arch in ("amd64", "arm64")
|
|
assert info.platform == f"{info.os}-{info.arch}"
|
|
|
|
|
|
def test_detect_platform_unsupported_os(monkeypatch):
|
|
monkeypatch.setattr(_platform, "system", lambda: "FreeBSD")
|
|
with pytest.raises(RuntimeError, match="Unsupported operating system"):
|
|
detect_platform()
|
|
|
|
|
|
def test_detect_platform_unsupported_arch(monkeypatch):
|
|
monkeypatch.setattr(_platform, "machine", lambda: "mips")
|
|
with pytest.raises(RuntimeError, match="Unsupported architecture"):
|
|
detect_platform()
|
|
|
|
|
|
|