summaryrefslogtreecommitdiffstats
path: root/apex/tests/test_apex_network_data.py
diff options
context:
space:
mode:
Diffstat (limited to 'apex/tests/test_apex_network_data.py')
-rw-r--r--apex/tests/test_apex_network_data.py76
1 files changed, 76 insertions, 0 deletions
diff --git a/apex/tests/test_apex_network_data.py b/apex/tests/test_apex_network_data.py
new file mode 100644
index 00000000..9197e1a8
--- /dev/null
+++ b/apex/tests/test_apex_network_data.py
@@ -0,0 +1,76 @@
+##############################################################################
+# Copyright (c) 2017 Tim Rozet (Red Hat)
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+import os
+
+from nose.tools import (
+ assert_equal,
+ assert_is_instance,
+ assert_raises
+)
+
+from apex.common.constants import (
+ EXTERNAL_NETWORK,
+ STORAGE_NETWORK,
+ ADMIN_NETWORK,
+)
+from apex import NetworkSettings
+from apex.network import network_data
+from apex.settings.network_settings import NetworkSettingsException
+from apex.tests.constants import TEST_CONFIG_DIR
+
+files_dir = os.path.join(TEST_CONFIG_DIR, 'network')
+
+REQUIRED_KEYS = [
+ 'name',
+ 'vip',
+ 'name_lower',
+ 'enabled'
+]
+
+
+class TestNetworkData:
+ @classmethod
+ def setup_class(cls):
+ """This method is run once for each class before any tests are run"""
+
+ @classmethod
+ def teardown_class(cls):
+ """This method is run once for each class _after_ all tests are run"""
+
+ def setup(self):
+ """This method is run once before _each_ test method is executed"""
+
+ def teardown(self):
+ """This method is run once after _each_ test method is executed"""
+
+ def test_create_network_data(self):
+ ns = NetworkSettings(os.path.join(files_dir, 'network_settings.yaml'))
+ output = network_data.create_network_data(ns)
+ assert_is_instance(output, list)
+ # TODO(trozet) change this back to 4 after OOO bug is fixed
+ assert len(output) is 5
+ for net in output:
+ assert_is_instance(net, dict)
+ for key in REQUIRED_KEYS:
+ assert key in net
+ if key == 'vip' or key == 'enabled':
+ assert_is_instance(net[key], bool)
+ else:
+ assert net[key] is not None
+
+ def test_negative_create_network_data(self):
+ assert_raises(network_data.NetworkDataException,
+ network_data.create_network_data, 'blah')
+
+ def test_create_network_data_with_write(self):
+ ns = NetworkSettings(os.path.join(files_dir, 'network_settings.yaml'))
+ network_data.create_network_data(ns, '/tmp/blah_network_data.yaml')
+ assert os.path.isfile('/tmp/blah_network_data.yaml')
+ os.remove('/tmp/blah_network_data.yaml')