diff --git a/gns3server/controller/ports/port.py b/gns3server/controller/ports/port.py index 601e8024f..5abdb3034 100644 --- a/gns3server/controller/ports/port.py +++ b/gns3server/controller/ports/port.py @@ -84,9 +84,9 @@ class Port: # If port name format has changed we use the port name as the short name (1.X behavior) if self._short_name: return self._short_name - elif '/' in self._name: + elif self._name and '/' in self._name: return self._name.replace(self.long_name_type(), self.short_name_type()) - elif self._name.startswith("{}{}".format(self.long_name_type(), self._interface_number)): + elif self._name and self._name.startswith("{}{}".format(self.long_name_type(), self._interface_number)): return self.short_name_type() + "{}".format(self._interface_number) return self._name diff --git a/tests/controller/test_node_port_name.py b/tests/controller/test_node_port_name.py index 03b4c4d87..974e40565 100644 --- a/tests/controller/test_node_port_name.py +++ b/tests/controller/test_node_port_name.py @@ -132,6 +132,13 @@ def test_list_ports_port_name_format(node): assert node.__json__()["ports"][1]["name"] == "eth0/0" +def test_short_name_none(): + """ + Test short_name does not raise exception when name is None + """ + assert EthernetPort(None, 0, 0, 0).short_name is None + + def test_list_ports_adapters(node): """ List port using adapters properties