Allows specifying nic order for overcloud nodes in network settings
[apex.git] / tests / test_apex_network_settings.py
index a891473..45c26ed 100644 (file)
@@ -7,10 +7,16 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 
-from apex.network_settings import NetworkSettings
+from apex.network_settings import (
+    NetworkSettings,
+    NetworkSettingsException,
+)
 
-from nose.tools import assert_equal
-from nose.tools import assert_is_instance
+from nose.tools import (
+    assert_equal,
+    assert_is_instance,
+    assert_raises
+)
 
 
 class TestNetworkSettings(object):
@@ -29,7 +35,7 @@ class TestNetworkSettings(object):
         """This method is run once after _each_ test method is executed"""
 
     def test_init(self):
-        ns = NetworkSettings('../config/network/network_settings.yaml', True)
+        NetworkSettings('../config/network/network_settings.yaml', True)
 
     def test_dump_bash(self):
         ns = NetworkSettings('../config/network/network_settings.yaml', True)
@@ -39,7 +45,38 @@ class TestNetworkSettings(object):
     def test_get_network_settings(self):
         ns = NetworkSettings('../config/network/network_settings.yaml', True)
         assert_is_instance(ns.get_network_settings(), dict)
+        for role in ['controller', 'compute']:
+            nic_index = 1
+            for network in ['admin_network', 'private_network',
+                            'public_network', 'storage_network']:
+                nic = 'nic' + str(nic_index)
+                assert_equal(ns.nics[role][network], nic)
+                nic_index += 1
+
+    def test_get_network_settings_unspecified_nics(self):
+        ns = NetworkSettings(
+            '../tests/config/network_settings_nics_not_specified.yaml',
+            True)
+        assert_is_instance(ns.get_network_settings(), dict)
+        for role in ['controller', 'compute']:
+            nic_index = 1
+            for network in ['admin_network', 'private_network',
+                            'public_network', 'storage_network']:
+                nic = 'nic' + str(nic_index)
+                assert_equal(ns.nics[role][network], nic)
+                nic_index += 1
 
     def test_get_enabled_networks(self):
         ns = NetworkSettings('../config/network/network_settings.yaml', True)
         assert_is_instance(ns.get_enabled_networks(), list)
+
+    def test_negative_network_settings(self):
+        assert_raises(NetworkSettingsException, NetworkSettings,
+                      '../tests/config/network_settings_duplicate_nic.yaml',
+                      True)
+        assert_raises(NetworkSettingsException, NetworkSettings,
+                      '../tests/config/network_settings_nic1_reserved.yaml',
+                      True)
+        assert_raises(NetworkSettingsException, NetworkSettings,
+                      '../tests/config/network_settings_missing_required_nic'
+                      '.yaml', True)