Forráskód Böngészése

Update Windows OSMorphing unit tests

Daniel Vincze 1 éve
szülő
commit
8a8ad901bc
1 módosított fájl, 78 hozzáadás és 21 törlés
  1. 78 21
      coriolis/tests/osmorphing/test_windows.py

+ 78 - 21
coriolis/tests/osmorphing/test_windows.py

@@ -735,27 +735,36 @@ class BaseWindowsMorphingToolsTestCase(test_base.CoriolisBaseTestCase):
                       interfaces_reg_path),
         ])
 
-    def test_check_ips_info(self):
+    def test__get_static_nics_info(self):
+        static_ipv4 = "10.0.0.16"
+        static_ipv6 = "fe80::728a:688:1a92:baec"
+        dynamic_ipv4 = "10.0.1.16"
+        dynamic_ipv6 = "fe81::728a:688:1a92:baec"
+        # detected static IPs
+        ips_info = [{"ip_address": static_ipv4},
+                    {"ip_address": static_ipv6}]
         nics_info = [
-            {'ip_addresses': [mock.sentinel.ip_address]}
-        ]
-        ips_info = [
-            {'ip_address': mock.sentinel.ip_address}
-        ]
-        self.morphing_tools._check_ips_info(nics_info, ips_info)
-
-    def test_check_ips_info_different_ips(self):
-        nics_info = [
-            {'ip_addresses': [
-                mock.sentinel.ip_address, mock.sentinel.ip_address2]}
-        ]
-        ips_info = [
-            {'ip_address': mock.sentinel.ip_address}
-        ]
+            # no IP addresses on NIC
+            {"ip_addresses": [], "mac_address": "00:50:56:92:91:42"},
+            # dynamic ipv6 IP
+            {"ip_addresses": [static_ipv4, dynamic_ipv6],
+             "mac_address": "00:50:56:92:91:43"},
+            # both IPs dynamic
+            {"ip_addresses": [dynamic_ipv4, dynamic_ipv6],
+             "mac_address": "00:50:56:92:91:44"},
+            # dynamic ipv4 IP
+            {"ip_addresses": [dynamic_ipv4, static_ipv6],
+             "mac_address": "00:50:56:92:91:45"}]
+
+        expected_result = [
+            {"mac_address": "00:50:56:92:91:43",
+             "ip_addresses": ["10.0.0.16"]},
+            {"mac_address": "00:50:56:92:91:45",
+             "ip_addresses": ["fe80::728a:688:1a92:baec"]}]
 
-        self.assertRaises(exception.OSMorphingException,
-                          self.morphing_tools._check_ips_info,
-                          nics_info, ips_info)
+        self.assertEqual(
+            self.morphing_tools._get_static_nics_info(nics_info, ips_info),
+            expected_result)
 
     @mock.patch.object(windows.utils, 'write_winrm_file')
     def test__write_static_ip_script(self, mock_write_winrm_file):
@@ -786,6 +795,8 @@ class BaseWindowsMorphingToolsTestCase(test_base.CoriolisBaseTestCase):
     @mock.patch.object(
         windows.BaseWindowsMorphingTools, '_write_static_ip_script'
     )
+    @mock.patch.object(
+        windows.BaseWindowsMorphingTools, '_get_static_nics_info')
     @mock.patch.object(
         windows.BaseWindowsMorphingTools, '_unload_registry_hive'
     )
@@ -795,6 +806,7 @@ class BaseWindowsMorphingToolsTestCase(test_base.CoriolisBaseTestCase):
     @mock.patch.object(windows.uuid, 'uuid4')
     def test_set_net_config(self, mock_uuid4, mock_load_registry_hive,
                             mock_unload_registry_hive,
+                            mock_get_static_nics_info,
                             mock_write_static_ip_script,
                             mock_compile_static_ip_conf_from_registry):
         dhcp = False
@@ -813,13 +825,57 @@ class BaseWindowsMorphingToolsTestCase(test_base.CoriolisBaseTestCase):
             "%sWindows\\System32\\config\\SYSTEM" % self.os_root_dir)
         mock_compile_static_ip_conf_from_registry.assert_called_once_with(
             str(mock_uuid4.return_value))
+        mock_get_static_nics_info.assert_called_once_with(nics_info, ips_info)
         mock_write_static_ip_script.assert_called_once_with(
             "C:\\Cloudbase-Init",
-            nics_info,
+            mock_get_static_nics_info.return_value,
             mock_compile_static_ip_conf_from_registry.return_value)
         mock_unload_registry_hive.assert_called_once_with(
             "HKLM\\%s" % mock_uuid4.return_value)
 
+    @mock.patch.object(
+        windows.BaseWindowsMorphingTools,
+        '_compile_static_ip_conf_from_registry'
+    )
+    @mock.patch.object(
+        windows.BaseWindowsMorphingTools, '_write_static_ip_script'
+    )
+    @mock.patch.object(
+        windows.BaseWindowsMorphingTools, '_get_static_nics_info')
+    @mock.patch.object(
+        windows.BaseWindowsMorphingTools, '_unload_registry_hive'
+    )
+    @mock.patch.object(
+        windows.BaseWindowsMorphingTools, '_load_registry_hive'
+    )
+    @mock.patch.object(windows.uuid, 'uuid4')
+    def test_set_net_config_no_static_info(
+            self, mock_uuid4, mock_load_registry_hive,
+            mock_unload_registry_hive, mock_get_static_nics_info,
+            mock_write_static_ip_script,
+            mock_compile_static_ip_conf_from_registry):
+        dhcp = False
+        nics_info = [
+            {'ip_addresses': ["10.1.10.10"]}
+        ]
+        ips_info = [
+            {'ip_address': "10.1.10.10"}
+        ]
+        mock_compile_static_ip_conf_from_registry.return_value = ips_info
+        mock_get_static_nics_info.return_value = []
+
+        self.morphing_tools.set_net_config(nics_info, dhcp=dhcp)
+
+        mock_load_registry_hive.assert_called_once_with(
+            "HKLM\\%s" % mock_uuid4.return_value,
+            "%sWindows\\System32\\config\\SYSTEM" % self.os_root_dir)
+        mock_compile_static_ip_conf_from_registry.assert_called_once_with(
+            str(mock_uuid4.return_value))
+        mock_get_static_nics_info.assert_called_once_with(nics_info, ips_info)
+        mock_write_static_ip_script.assert_not_called()
+        mock_unload_registry_hive.assert_called_once_with(
+            "HKLM\\%s" % mock_uuid4.return_value)
+
     @mock.patch.object(
         windows.BaseWindowsMorphingTools, '_get_cbslinit_base_dir'
     )
@@ -836,7 +892,8 @@ class BaseWindowsMorphingToolsTestCase(test_base.CoriolisBaseTestCase):
     @mock.patch.object(
         windows.BaseWindowsMorphingTools, '_load_registry_hive'
     )
-    @mock.patch.object(windows.BaseWindowsMorphingTools, '_check_ips_info')
+    @mock.patch.object(windows.BaseWindowsMorphingTools,
+                       '_get_static_nics_info')
     def test_set_net_config_with_dhcp(
             self, mock_check_ips_info, mock_load_registry_hive,
             mock_unload_registry_hive, mock_write_static_ip_script,