Skip to contentSkip to conversation

dts: ConfigurationError not thrown due to lack of next default value

PATCH In review Riley Fletcher 2 participants 2 messages Apr 14 – Apr 16

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 dts: ConfigurationError not thrown due to lack of next default value

In DTS, when providing an nonexisting PCI address, a ConfigurationError should be thrown. Instead, because the next() is not given a default None, it instead hits a StopIteration error, which is harder to debug.

---
 dts/framework/testbed_model/linux_session.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
dts/framework/testbed_model/linux_session.py +1 -1
index ee943462c2..3de92b549e 100644
@@ -168,7 +168,7 @@ def get_port_info(self, pci_address: str) -> PortInfo:
             ConfigurationError: If the port could not be found.
         """
         bus_info = f"pci@{pci_address}"
-        port = next(port for port in self._lshw_net_info if port.get("businfo") == bus_info)
+        port = next((port for port in self._lshw_net_info if port.get("businfo") == bus_info), None)
         if port is None:
             raise ConfigurationError(f"Port {pci_address} could not be found on the node.")
 
Signature · 1 line
2.53.0
#1 lore raw

Hi Riley,

Thank you for this fix! Looks good to me, this is obviously a bug. It needs the Fixes tag referencing the original commit, so that it can be retrospectively fixed on the LTS versions. The CI would complain about this if the commit subject would be correctly phrased to something like:

dts: fix port info getter when port is not found

Luca