diff --git a/module-types/FS/FHD-8MTPMESHOM4.yaml b/module-types/FS/FHD-8MTPMESHOM4.yaml index e3b530a2..28d97d0f 100644 --- a/module-types/FS/FHD-8MTPMESHOM4.yaml +++ b/module-types/FS/FHD-8MTPMESHOM4.yaml @@ -31,7 +31,7 @@ front-ports: color: 00ffff - name: '{module}:B-2' type: mpo - rear_port: '{module}:A-2' + rear_port: '{module}:B-2' rear_port_position: 1 color: 00ffff - name: '{module}:B-3' diff --git a/module-types/FS/FHD-8MTPMESHOS2.yaml b/module-types/FS/FHD-8MTPMESHOS2.yaml index bec2074c..20b7989b 100644 --- a/module-types/FS/FHD-8MTPMESHOS2.yaml +++ b/module-types/FS/FHD-8MTPMESHOS2.yaml @@ -26,7 +26,7 @@ front-ports: rear_port_position: 1 - name: '{module}:B-2' type: mpo - rear_port: '{module}:A-2' + rear_port: '{module}:B-2' rear_port_position: 1 - name: '{module}:B-3' type: mpo diff --git a/tests/definitions_test.py b/tests/definitions_test.py index 67827815..56a6d601 100644 --- a/tests/definitions_test.py +++ b/tests/definitions_test.py @@ -211,6 +211,7 @@ def test_definitions(file_path, schema, change_type): rp.get("name") for rp in rear_ports if isinstance(rp, dict) } + rear_port_positions = {} for fp in front_ports: if not isinstance(fp, dict): continue @@ -225,6 +226,19 @@ def test_definitions(file_path, schema, change_type): pytrace=False, ) + # Check for duplicate (rear_port, rear_port_position) combinations + if rear_port_ref: + rear_port_pos = fp.get("rear_port_position", 1) + key = (rear_port_ref, rear_port_pos) + if key in rear_port_positions: + pytest.fail( + f"{file_path}: front-port '{fp.get('name')}' has duplicate " + f"(rear_port, rear_port_position) = ('{rear_port_ref}', {rear_port_pos}). " + f"Already used by front-port '{rear_port_positions[key]}'.", + pytrace=False, + ) + rear_port_positions[key] = fp.get("name") + # Verify the slug is valid, only if the definition type is a Device if this_device.isDevice: assert this_device.verify_slug(KNOWN_SLUGS), pytest.fail(this_device.failureMessage, False)