diff --git a/docs/CARS.md b/docs/CARS.md
index c39c53b8ca..b5eb8ded2f 100644
--- a/docs/CARS.md
+++ b/docs/CARS.md
@@ -157,10 +157,10 @@ A supported vehicle is one that just works when you install a comma three. All s
|MAN|TGE 2017-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[1,9](#footnotes)|0 mph|31 mph|[](##)|[](##)|View
- 1 J533 connector
- 1 USB-C coupler
- 1 harness box
- 1 long OBD-C cable
- 1 mount
Buy Here |
|
|Mazda|CX-5 2022-23|All|Stock|0 mph|0 mph|[](##)|[](##)|View
- 1 Mazda connector
- 1 RJ45 cable (7 ft)
- 1 comma power v2
- 1 harness box
- 1 mount
Buy Here ||
|Mazda|CX-9 2021-23|All|Stock|0 mph|28 mph|[](##)|[](##)|View
- 1 Mazda connector
- 1 RJ45 cable (7 ft)
- 1 comma power v2
- 1 harness box
- 1 mount
Buy Here |
|
-|Nissan|Altima 2019-20|ProPILOT Assist|Stock|0 mph|0 mph|[](##)|[](##)|View
- 1 Nissan B connector
- 1 RJ45 cable (7 ft)
- 1 USB-C coupler
- 1 harness box
- 1 long OBD-C cable
Buy Here ||
-|Nissan|Leaf 2018-23|ProPILOT Assist|Stock|0 mph|0 mph|[](##)|[](##)|View
- 1 Nissan A connector
- 1 RJ45 cable (7 ft)
- 1 USB-C coupler
- 1 harness box
- 1 long OBD-C cable
Buy Here |
|
-|Nissan|Rogue 2018-20|ProPILOT Assist|Stock|0 mph|0 mph|[](##)|[](##)|View
- 1 Nissan A connector
- 1 RJ45 cable (7 ft)
- 1 USB-C coupler
- 1 harness box
- 1 long OBD-C cable
Buy Here ||
-|Nissan|X-Trail 2017|ProPILOT Assist|Stock|0 mph|0 mph|[](##)|[](##)|View
- 1 Nissan A connector
- 1 RJ45 cable (7 ft)
- 1 USB-C coupler
- 1 harness box
- 1 long OBD-C cable
Buy Here ||
+|Nissan|Altima 2019-20|ProPILOT Assist|Stock|0 mph|0 mph|[](##)|[](##)|View
- 1 Nissan B connector
- 1 RJ45 cable (7 ft)
- 1 USB-C coupler
- 1 harness box
- 1 long OBD-C cable
- 1 mount
Buy Here ||
+|Nissan|Leaf 2018-23|ProPILOT Assist|Stock|0 mph|0 mph|[](##)|[](##)|View
- 1 Nissan A connector
- 1 RJ45 cable (7 ft)
- 1 USB-C coupler
- 1 harness box
- 1 long OBD-C cable
- 1 mount
Buy Here |
|
+|Nissan|Rogue 2018-20|ProPILOT Assist|Stock|0 mph|0 mph|[](##)|[](##)|View
- 1 Nissan A connector
- 1 RJ45 cable (7 ft)
- 1 USB-C coupler
- 1 harness box
- 1 long OBD-C cable
- 1 mount
Buy Here ||
+|Nissan|X-Trail 2017|ProPILOT Assist|Stock|0 mph|0 mph|[](##)|[](##)|View
- 1 Nissan A connector
- 1 RJ45 cable (7 ft)
- 1 USB-C coupler
- 1 harness box
- 1 long OBD-C cable
- 1 mount
Buy Here ||
|Ram|1500 2019-23|Adaptive Cruise Control (ACC)|Stock|0 mph|32 mph|[](##)|[](##)|View
- 1 RJ45 cable (7 ft)
- 1 Ram connector
- 1 comma power v2
- 1 harness box
- 1 mount
Buy Here ||
|SEAT|Ateca 2018|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[1,9](#footnotes)|0 mph|0 mph|[](##)|[](##)|View
- 1 J533 connector
- 1 USB-C coupler
- 1 harness box
- 1 long OBD-C cable
- 1 mount
Buy Here ||
|SEAT|Leon 2014-20|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[1,9](#footnotes)|0 mph|0 mph|[](##)|[](##)|View
- 1 J533 connector
- 1 USB-C coupler
- 1 harness box
- 1 long OBD-C cable
- 1 mount
Buy Here ||
diff --git a/selfdrive/car/docs_definitions.py b/selfdrive/car/docs_definitions.py
index e9f105d273..948e84a8ca 100644
--- a/selfdrive/car/docs_definitions.py
+++ b/selfdrive/car/docs_definitions.py
@@ -33,6 +33,7 @@ class Star(Enum):
class PartType(Enum):
harness_connector = "Harness Connector"
generic_part = "Generic Part"
+ mount = "Mount"
Part = namedtuple("Part", ["value","type"], defaults=("",PartType.generic_part))
@@ -82,8 +83,8 @@ class CarPart(Enum):
comma_power_v2 = Part("comma power v2")
#mounts
- mount = Part("mount")
- angled_mount = Part("angled mount")
+ mount = Part("mount", type=PartType.mount)
+ angled_mount = Part("angled mount", type=PartType.mount)
#cables
rj45_cable_7ft = Part("RJ45 cable (7 ft)")
diff --git a/selfdrive/car/nissan/values.py b/selfdrive/car/nissan/values.py
index 9bc8028e54..1fee383887 100644
--- a/selfdrive/car/nissan/values.py
+++ b/selfdrive/car/nissan/values.py
@@ -30,7 +30,7 @@ class CAR:
ALTIMA = "NISSAN ALTIMA 2020"
-NISSAN_PARTS = [CarPart.harness_box, CarPart.rj45_cable_7ft, CarPart.long_obdc_cable, CarPart.usbc_coupler]
+NISSAN_PARTS = [CarPart.harness_box, CarPart.rj45_cable_7ft, CarPart.long_obdc_cable, CarPart.usbc_coupler, CarPart.mount]
@dataclass
diff --git a/selfdrive/car/tests/test_docs.py b/selfdrive/car/tests/test_docs.py
index 3a688b6b8f..7b8d7664f4 100755
--- a/selfdrive/car/tests/test_docs.py
+++ b/selfdrive/car/tests/test_docs.py
@@ -75,7 +75,8 @@ class TestCarDocs(unittest.TestCase):
raise unittest.SkipTest
self.assertTrue(len(car.car_parts.parts) > 0, f"Need to specify car parts: {car.name}")
- self.assertTrue(any(p.value.type is PartType.harness_connector and p.value is not CarPart.none_connector for p in car.car_parts.parts), f"Need to specify an harness connector: {car.name}")
+ self.assertTrue(len(list(filter(lambda p: p.value.type is PartType.harness_connector and p is not CarPart.none_connector, car.car_parts.parts))) > 0, f"Need to specify an harness connector: {car.name}")
+ self.assertTrue(len(list(filter(lambda p: p.value.type is PartType.mount, car.car_parts.parts))) > 0, f"Need to specify a mount: {car.name}")
if __name__ == "__main__":