Преглед на файлове

Update unit tests for `_setup_network_preservation` in `coriolis.osmorphing.base`

Cristian Matiut преди 10 месеца
родител
ревизия
38eeac06b6
променени са 1 файла, в които са добавени 116 реда и са изтрити 21 реда
  1. 116 21
      coriolis/tests/osmorphing/test_base.py

+ 116 - 21
coriolis/tests/osmorphing/test_base.py

@@ -999,43 +999,136 @@ class BaseLinuxOSMorphingToolsTestBase(test_base.CoriolisBaseTestCase):
         )
 
     @ddt.data(
-        # (nics_info, expected_net_ifaces)
+        # (nics_info, interface_info, expected_net_ifaces)
+        (
+            [
+                {"mac_address": None,
+                 "ip_addresses": []}
+            ],
+            {
+                "eth0": {"mac_address": None,
+                         "ip_addresses": []},
+            },
+            {}
+        ),
+        (
+            [
+                {"mac_address": "00:11:22:33:44:55",
+                 "ip_addresses": ["192.168.1.10"]},
+            ],
+            {
+                "eth0": {"mac_address": None,
+                         "ip_addresses": None},
+            },
+            {}
+        ),
+        (
+            [
+                {"mac_address": "00:11:22:33:44:55",
+                 "ip_addresses": ["192.168.1.10"]},
+            ],
+            {
+                "eth0": {"mac_address": "00:11:22:33:44:55",
+                         "ip_addresses": []},
+            },
+            {
+                "eth0": "00:11:22:33:44:55"
+            }
+        ),
+        (
+            [
+                {"mac_address": "00:11:22:33:44:55",
+                 "ip_addresses": ["192.168.1.10"]},
+            ],
+            {
+                "eth0": {"mac_address": None,
+                         "ip_addresses": ["192.168.1.10"]},
+            },
+            {
+                "eth0": "00:11:22:33:44:55"
+            }
+        ),
+        (
+            [
+                {"mac_address": "00:11:22:33:44:55",
+                 "ip_addresses": ["192.168.1.10"]},
+            ],
+            {
+                "eth0": {"mac_address": None,
+                         "ip_addresses": ["192.168.1.20", "192.168.1.10"]},
+            },
+            {
+                "eth0": "00:11:22:33:44:55"
+            }
+        ),
+        (
+            [
+                {"mac_address": "00:11:22:33:44:55",
+                 "ip_addresses": ["192.168.1.20", "192.168.1.10"]},
+            ],
+            {
+                "eth0": {"mac_address": None,
+                         "ip_addresses": ["192.168.1.30", "192.168.1.10"]},
+            },
+            {
+                "eth0": "00:11:22:33:44:55"
+            }
+        ),
         (
             [
                 {"mac_address": "AA:BB:CC:DD:EE:FF",
-                 "ip_addresses": ["192.168.1.20"]},
+                 "ip_addresses": ["192.168.4.10"]},
+            ],
+            {
+                "eth0": {"mac_address": "00:11:22:33:44:55",
+                         "ip_addresses": ["192.168.1.10"]},
+                "eth1": {"mac_address": "AA:BB:CC:DD:EE:FF",
+                         "ip_addresses": ["192.168.2.20"]},
+                "eth2": {"mac_address": "11:22:33:44:55:66",
+                         "ip_addresses": ["192.168.3.30"]},
+            },
+            {
+                "eth1": "AA:BB:CC:DD:EE:FF"
+            }
+        ),
+        (
+            [
+                {"mac_address": None,
+                 "ip_addresses": ["192.168.3.10"]},
+                {"mac_address": "AA:BB:CC:DD:EE:FF",
+                 "ip_addresses": []},
                 {"mac_address": "00:11:22:33:44:55",
                  "ip_addresses": ["192.168.1.11"]},
-                {"mac_address": "11:22:33:44:55:66",
-                 "ip_addresses": ["192.168.1.31"]},
-                {"mac_address": None,
-                 "ip_addresses": ["192.168.1.10"]},
                 {"mac_address": "FF:FF:FF:FF:FF:FF",
-                 "ip_addresses": ["192.168.1.10", "192.168.1.20"]}
+                 "ip_addresses": ["192.168.2.10", "192.168.2.20"]},
             ],
             {
-                "eth0": "FF:FF:FF:FF:FF:FF",
-                "eth1": "FF:FF:FF:FF:FF:FF",
-                "eth2": "11:22:33:44:55:66"
+                "eth3": {"mac_address": None,
+                         "ip_addresses": ["192.168.3.10"]},
+                "eth0": {"mac_address": "00:11:22:33:44:55",
+                         "ip_addresses": ["192.168.1.10"]},
+                "eth1": {"mac_address": "AA:BB:CC:DD:EE:FF",
+                         "ip_addresses": ["192.168.1.20"]},
+                "eth2": {"mac_address": "11:22:33:44:55:66",
+                         "ip_addresses": ["192.168.2.20"]},
+            },
+            {
+                "eth0": "00:11:22:33:44:55",
+                "eth1": "AA:BB:CC:DD:EE:FF",
+                "eth2": "FF:FF:FF:FF:FF:FF",
             }
         ),
     )
     @ddt.unpack
-    def test__setup_network_preservation(self, nics_info, expected_net_ifaces):
+    def test__setup_network_preservation(
+        self, nics_info, interface_info, expected_net_ifaces):
         class FakeNetPreserver:
             def __init__(self, tool):
                 self.tool = tool
                 self.interface_info = {}
 
             def parse_network(self):
-                self.interface_info = {
-                    "eth0": {"mac_address": "00:11:22:33:44:55",
-                             "ip_addresses": ["192.168.1.10"]},
-                    "eth1": {"mac_address": "AA:BB:CC:DD:EE:FF",
-                             "ip_addresses": ["192.168.1.20"]},
-                    "eth2": {"mac_address": "11:22:33:44:55:66",
-                             "ip_addresses": ["192.168.1.30"]},
-                }
+                self.interface_info = interface_info
 
         with mock.patch(
             "coriolis.osmorphing.netpreserver.factory.get_net_preserver",
@@ -1043,11 +1136,13 @@ class BaseLinuxOSMorphingToolsTestBase(test_base.CoriolisBaseTestCase):
 
             self.os_morphing_tools._add_net_udev_rules = mock.MagicMock()
 
-            self.os_morphing_tools._setup_network_preservation(nics_info)
+            with self.assertLogs(
+                'coriolis.osmorphing.base', level=logging.INFO):
+                self.os_morphing_tools._setup_network_preservation(nics_info)
 
             result_net_ifaces = dict(
                 self.os_morphing_tools._add_net_udev_rules.call_args[0][0])
 
             mock_get_np.assert_called_once_with(self.os_morphing_tools)
             self.os_morphing_tools._add_net_udev_rules.assert_called_once()
-            self.assertEqual(result_net_ifaces, expected_net_ifaces)
+            self.assertEqual(expected_net_ifaces, result_net_ifaces)