|
|
@ -8,7 +8,7 @@ from PIL import Image, ImageDraw, ImageFont |
|
|
|
from cereal import log, car |
|
|
|
from cereal import log, car |
|
|
|
from common.basedir import BASEDIR |
|
|
|
from common.basedir import BASEDIR |
|
|
|
from common.params import Params |
|
|
|
from common.params import Params |
|
|
|
from selfdrive.controls.lib.events import Alert, EVENTS |
|
|
|
from selfdrive.controls.lib.events import Alert, EVENTS, ET |
|
|
|
from selfdrive.controls.lib.alertmanager import set_offroad_alert |
|
|
|
from selfdrive.controls.lib.alertmanager import set_offroad_alert |
|
|
|
|
|
|
|
|
|
|
|
AlertSize = log.ControlsState.AlertSize |
|
|
|
AlertSize = log.ControlsState.AlertSize |
|
|
@ -74,20 +74,28 @@ class TestAlerts(unittest.TestCase): |
|
|
|
self.assertLessEqual(w, max_text_width, msg=msg) |
|
|
|
self.assertLessEqual(w, max_text_width, msg=msg) |
|
|
|
|
|
|
|
|
|
|
|
def test_alert_sanity_check(self): |
|
|
|
def test_alert_sanity_check(self): |
|
|
|
for a in ALERTS: |
|
|
|
for event_types in EVENTS.values(): |
|
|
|
if a.alert_size == AlertSize.none: |
|
|
|
for event_type, a in event_types.items(): |
|
|
|
self.assertEqual(len(a.alert_text_1), 0) |
|
|
|
# TODO: add callback alerts |
|
|
|
self.assertEqual(len(a.alert_text_2), 0) |
|
|
|
if not isinstance(a, Alert): |
|
|
|
elif a.alert_size == AlertSize.small: |
|
|
|
continue |
|
|
|
self.assertGreater(len(a.alert_text_1), 0) |
|
|
|
|
|
|
|
self.assertEqual(len(a.alert_text_2), 0) |
|
|
|
if a.alert_size == AlertSize.none: |
|
|
|
elif a.alert_size == AlertSize.mid: |
|
|
|
self.assertEqual(len(a.alert_text_1), 0) |
|
|
|
self.assertGreater(len(a.alert_text_1), 0) |
|
|
|
self.assertEqual(len(a.alert_text_2), 0) |
|
|
|
self.assertGreater(len(a.alert_text_2), 0) |
|
|
|
elif a.alert_size == AlertSize.small: |
|
|
|
else: |
|
|
|
self.assertGreater(len(a.alert_text_1), 0) |
|
|
|
self.assertGreater(len(a.alert_text_1), 0) |
|
|
|
self.assertEqual(len(a.alert_text_2), 0) |
|
|
|
|
|
|
|
elif a.alert_size == AlertSize.mid: |
|
|
|
self.assertGreaterEqual(a.duration, 0.) |
|
|
|
self.assertGreater(len(a.alert_text_1), 0) |
|
|
|
|
|
|
|
self.assertGreater(len(a.alert_text_2), 0) |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
self.assertGreater(len(a.alert_text_1), 0) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.assertGreaterEqual(a.duration, 0.) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if event_type not in (ET.WARNING, ET.PERMANENT, ET.PRE_ENABLE): |
|
|
|
|
|
|
|
self.assertEqual(a.creation_delay, 0.) |
|
|
|
|
|
|
|
|
|
|
|
def test_offroad_alerts(self): |
|
|
|
def test_offroad_alerts(self): |
|
|
|
params = Params() |
|
|
|
params = Params() |
|
|
|