Files
IQ.Pilot/iqdbc_repo/conftest.py
2026-07-21 13:46:05 -05:00

43 lines
1.4 KiB
Python

# pytest attempts to execute shell scripts while collecting
collect_ignore_glob = [
"iqdbc/safety/tests/misra/*.sh",
"iqdbc/safety/tests/misra/cppcheck/",
]
_ABSTRACT_BASES = frozenset(("CarSafetyTest", "AolSafetyTestBase", "SafetyTest", "SafetyTestBase"))
def _method_from_base(cls, method_name):
for klass in cls.__mro__:
if method_name in klass.__dict__:
return klass.__name__ in _ABSTRACT_BASES
return True
_NEEDS_LKAS = frozenset((
"test_enable_control_allowed_with_aol_button",
"test_enable_control_allowed_with_aol_button_and_disable_with_main_cruise",
"test_engage_with_brake_pressed_0_aol_button",
))
_NEEDS_ACC_STATE = frozenset((
"test_enable_control_allowed_with_manual_acc_main_on_state",
"test_enable_control_allowed_with_aol_button_and_disable_with_main_cruise",
"test_engage_with_brake_pressed_1_acc_main_on",
))
def pytest_collection_modifyitems(items):
keep = []
for item in items:
cls = item.cls
if cls is None:
keep.append(item)
continue
if cls.__name__.endswith("Base"):
continue
if "regen" in item.name and _method_from_base(cls, "_user_regen_msg"):
continue
if item.name in _NEEDS_LKAS and _method_from_base(cls, "_lkas_button_msg"):
continue
if item.name in _NEEDS_ACC_STATE and _method_from_base(cls, "_acc_state_msg"):
continue
keep.append(item)
items[:] = keep