Files
StarPilot/openpilot/system/manager/test/test_fleet_dm_lock.py
T
2026-11-02 12:46:12 -06:00

24 lines
1.1 KiB
Python

import ast
from pathlib import Path
import pytest
from openpilot.common.params import Params
@pytest.mark.parametrize("locked", [False, True])
@pytest.mark.parametrize("record_locked", [False, True])
def test_fleet_dm_lock_is_independent_of_recording(tmp_path, locked, record_locked):
params = Params(str(tmp_path))
params.put_bool("AlwaysOnDM", False, block=True)
params.put_bool("AlwaysOnDMLock", locked, block=True)
params.put_bool("RecordFrontLock", record_locked, block=True)
path = Path(__file__).resolve().parents[1] / "manager.py"
function = next(node for node in ast.parse(path.read_text()).body
if isinstance(node, ast.FunctionDef) and node.name == "manager_init")
branch = next(node for node in function.body if isinstance(node, ast.If)
and ast.unparse(node.test) == "params.get_bool('AlwaysOnDMLock')")
exec(compile(ast.Module(body=[branch], type_ignores=[]), str(path), "exec"), {"params": params})
assert params.get_bool("AlwaysOnDM") is locked
assert params.get_bool("RecordFrontLock") is record_locked