summaryrefslogtreecommitdiffstats
path: root/tests/test_apex_network_settings.py
blob: ff61cc4b943ac375271c99364ae081f7ce8ef7d5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
##############################################################################
# Copyright (c) 2016 Dan Radez (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
##############################################################################

from apex.network_settings import (
    NetworkSettings,
    NetworkSettingsException,
)

from nose.tools import (
    assert_equal,
    assert_is_instance,
    assert_raises
)


class TestNetworkSettings(object):
    @classmethod
    def setup_class(klass):
        """This method is run once for each class before any tests are run"""

    @classmethod
    def teardown_class(klass):
        """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_init(self):
        NetworkSettings('../config/network/network_settings.yaml', True)

    def test_dump_bash(self):
        ns = NetworkSettings('../config/network/network_settings.yaml', True)
        assert_equal(ns.dump_bash(), None)
        assert_equal(ns.dump_bash(path='/dev/null'), None)

    def test_get_network_settings(self):
        ns = NetworkSettings('../config/network/network_settings.yaml', True)
        assert_is_instance(ns, 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, 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)