diff --git a/AppImage/scripts/ovs_topology.py b/AppImage/scripts/ovs_topology.py index 4d4792cd..c2b44caa 100644 --- a/AppImage/scripts/ovs_topology.py +++ b/AppImage/scripts/ovs_topology.py @@ -31,7 +31,7 @@ def _rows(table): def _list(value): - return value if isinstance(value, list) else [value] if value else [] + return value if isinstance(value, list) else [] if value is None or value == '' else [value] def parse_topology(bridges, ports, interfaces): diff --git a/AppImage/scripts/tests/test_ovs_topology.py b/AppImage/scripts/tests/test_ovs_topology.py index 6a0061de..dadde489 100644 --- a/AppImage/scripts/tests/test_ovs_topology.py +++ b/AppImage/scripts/tests/test_ovs_topology.py @@ -64,6 +64,11 @@ class OvsTopology(unittest.TestCase): self.assertIsNone(data['bonds']['uplink']['bond_active_slave']) self.assertEqual(data['ports']['eno2']['bond_master'], 'uplink') + def test_zero_vlan_tag_is_preserved(self): + tables = fixture() + tables[1]['data'][3][4] = 0 + self.assertEqual(ovs.parse_topology(*tables)['ports']['vlan100']['ovs_tag'], 0) + def test_no_ovs_does_not_spawn_any_process(self): with patch.object(ovs.shutil, 'which', return_value=None), patch.object(ovs.subprocess, 'run') as run: self.assertEqual(ovs.get_topology(), {})