mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-11-04 19:43:49 +08:00
Test Radar Publication Fault Semantics
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
from itertools import product
|
||||
from types import SimpleNamespace
|
||||
from unittest.mock import Mock
|
||||
|
||||
import pytest
|
||||
|
||||
from opendbc.car.structs import car
|
||||
from openpilot.selfdrive.car.card import Car
|
||||
|
||||
|
||||
@pytest.mark.parametrize("can_error,radar_fault,wrong_config,unavailable", list(product((False, True), repeat=4)))
|
||||
def test_radar_publication_retains_faults(can_error, radar_fault, wrong_config, unavailable):
|
||||
rd = car.RadarData()
|
||||
rd.errors.canError = can_error
|
||||
rd.errors.radarFault = radar_fault
|
||||
rd.errors.wrongConfig = wrong_config
|
||||
rd.errors.radarUnavailableTemporary = unavailable
|
||||
owner = SimpleNamespace(pm=SimpleNamespace(send=Mock()))
|
||||
Car.radar_publish(owner, rd)
|
||||
owner.pm.send.assert_called_once()
|
||||
service, message = owner.pm.send.call_args.args
|
||||
assert service == 'radarTracks'
|
||||
assert message.valid == (not can_error)
|
||||
assert message.radarTracks.to_dict() == rd.to_dict()
|
||||
|
||||
|
||||
def test_no_completed_radar_batch_does_not_publish():
|
||||
owner = SimpleNamespace(pm=SimpleNamespace(send=Mock()))
|
||||
Car.radar_publish(owner, None)
|
||||
owner.pm.send.assert_not_called()
|
||||
Reference in New Issue
Block a user