IQ.Pilot Prebuilt Release @ 27f668a
This commit is contained in:
66
iqpilot/ui/tests/test_big_model_status.py
Normal file
66
iqpilot/ui/tests/test_big_model_status.py
Normal file
@@ -0,0 +1,66 @@
|
||||
"""
|
||||
Copyright © IQ.Lvbs, apart of Project Teal Lvbs, All Rights Reserved, licensed under https://konn3kt.com/tos/
|
||||
|
||||
The BIG (tici/tizi) and SMALL (mici) onroad source indicators share one
|
||||
resolver (comma PR #38492 states, backend-aware label). Pin its truth table.
|
||||
"""
|
||||
from iqpilot.ui.onroad.big_model_status import SourceState, resolve_source
|
||||
|
||||
|
||||
class _FakeParams:
|
||||
def __init__(self, **flags):
|
||||
self._flags = flags
|
||||
|
||||
def get_bool(self, key: str) -> bool:
|
||||
return bool(self._flags.get(key, False))
|
||||
|
||||
|
||||
def _resolve(engaged=False, **flags):
|
||||
return resolve_source(_FakeParams(**flags), engaged)
|
||||
|
||||
|
||||
def test_no_backend_enabled_is_hidden():
|
||||
assert _resolve() == ("", SourceState.HIDDEN)
|
||||
|
||||
|
||||
def test_emac_label_is_mac():
|
||||
label, _ = _resolve(IQEmacEnabled=True, MacModelReachable=True, MacModelActive=True)
|
||||
assert label == "MAC"
|
||||
|
||||
|
||||
def test_egpu_label_is_gpu():
|
||||
label, _ = _resolve(IQEgpuEnabled=True, UsbGpuPresent=True, UsbGpuActive=True)
|
||||
assert label == "GPU"
|
||||
|
||||
|
||||
def test_emac_wins_when_both_enabled():
|
||||
label, _ = _resolve(IQEmacEnabled=True, IQEgpuEnabled=True,
|
||||
MacModelReachable=True, UsbGpuPresent=True)
|
||||
assert label == "MAC"
|
||||
|
||||
|
||||
def test_egpu_states_mirror_emac():
|
||||
assert _resolve(IQEgpuEnabled=True)[1] == SourceState.HIDDEN # not present
|
||||
assert _resolve(IQEgpuEnabled=True, UsbGpuPresent=True)[1] == SourceState.LOADING
|
||||
assert _resolve(IQEgpuEnabled=True, UsbGpuPresent=True, UsbGpuActive=True)[1] == SourceState.ACTIVE
|
||||
assert _resolve(IQEgpuEnabled=True, UsbGpuPresent=True, UsbGpuFailed=True)[1] == SourceState.FAILED
|
||||
assert _resolve(engaged=True, IQEgpuEnabled=True, UsbGpuPresent=True,
|
||||
UsbGpuFailed=True)[1] == SourceState.CROSSED
|
||||
|
||||
|
||||
def test_emac_states():
|
||||
assert _resolve(IQEmacEnabled=True)[1] == SourceState.HIDDEN # unreachable
|
||||
assert _resolve(IQEmacEnabled=True, MacModelReachable=True)[1] == SourceState.LOADING
|
||||
assert _resolve(IQEmacEnabled=True, MacModelReachable=True, MacModelActive=True)[1] == SourceState.ACTIVE
|
||||
assert _resolve(IQEmacEnabled=True, MacModelReachable=True, MacModelFailed=True)[1] == SourceState.FAILED
|
||||
# engaged on small because big failed -> crossed
|
||||
assert _resolve(engaged=True, IQEmacEnabled=True, MacModelReachable=True,
|
||||
MacModelFailed=True)[1] == SourceState.CROSSED
|
||||
# active always wins over a stale failed flag
|
||||
assert _resolve(IQEmacEnabled=True, MacModelReachable=True,
|
||||
MacModelActive=True, MacModelFailed=True)[1] == SourceState.ACTIVE
|
||||
|
||||
|
||||
def test_failed_but_disconnected_is_hidden():
|
||||
# unplugged mid-drive: nothing to show, not a red/orange "failed"
|
||||
assert _resolve(IQEmacEnabled=True, MacModelReachable=False, MacModelFailed=True)[1] == SourceState.HIDDEN
|
||||
Reference in New Issue
Block a user