#!/usr/bin/env python3 from parameterized import parameterized import unittest from openpilot.selfdrive.car.gm.values import CAMERA_ACC_CAR, CAR, FINGERPRINTS, GM_RX_OFFSET CAMERA_DIAGNOSTIC_ADDRESS = 0x24b class TestGMFingerprint(unittest.TestCase): @parameterized.expand(FINGERPRINTS.items()) def test_can_fingerprints(self, car_model, fingerprints): self.assertGreater(len(fingerprints), 0) # Trailblazer is in dashcam if car_model != CAR.TRAILBLAZER: self.assertTrue(all(len(finger) for finger in fingerprints)) # The camera can sometimes be communicating on startup if car_model in CAMERA_ACC_CAR - {CAR.TRAILBLAZER}: for finger in fingerprints: for required_addr in (CAMERA_DIAGNOSTIC_ADDRESS, CAMERA_DIAGNOSTIC_ADDRESS + GM_RX_OFFSET): self.assertEqual(finger.get(required_addr), 8, required_addr) if __name__ == "__main__": unittest.main()