Merge "Adds overcloud ssh support and other fixes"
[apex.git] / tests / test_apex_deploy_env.py
1 ##############################################################################
2 # Copyright (c) 2016 Dan Radez (Red Hat)
3 #
4 # All rights reserved. This program and the accompanying materials
5 # are made available under the terms of the Apache License, Version 2.0
6 # which accompanies this distribution, and is available at
7 # http://www.apache.org/licenses/LICENSE-2.0
8 ##############################################################################
9
10 import io
11 # https://docs.python.org/3/library/io.html
12
13 from apex.deploy_env import DeploySettings
14 from apex.deploy_env import DeploySettingsException
15
16 from nose.tools import assert_equal
17 from nose.tools import assert_raises
18
19 deploy_files = ('deploy_settings.yaml',
20                 'os-nosdn-nofeature-noha.yaml',
21                 'os-nosdn-ovs-noha.yaml',
22                 'os-ocl-nofeature-ha.yaml',
23                 'os-odl_l2-sdnvpn-ha.yaml',
24                 'os-odl_l3-nofeature-ha.yaml',
25                 'os-nosdn-nofeature-ha.yaml',
26                 'os-nosdn-ovs-ha.yaml',
27                 'os-nosdn-performance-ha.yaml',
28                 'os-odl_l2-nofeature-ha.yaml',
29                 'os-odl_l2-sfc-noha.yaml',
30                 'os-onos-nofeature-ha.yaml')
31
32 test_deploy_content = (
33     'global_params:',
34     'deploy_options: string',
35     """deploy_options: string
36 global_params:""",
37     """global_params:
38 deploy_options:
39   error: error
40 """,
41     """global_params:
42 deploy_options:
43   performance: string
44 """,
45     """global_params:
46 deploy_options:
47   dataplane: invalid
48 """,
49     """global_params:
50 deploy_options:
51   performance:
52     Controller:
53       error: error
54 """,)
55
56
57 class TestIpUtils(object):
58     @classmethod
59     def setup_class(klass):
60         """This method is run once for each class before any tests are run"""
61
62     @classmethod
63     def teardown_class(klass):
64         """This method is run once for each class _after_ all tests are run"""
65
66     def setUp(self):
67         """This method is run once before _each_ test method is executed"""
68
69     def teardown(self):
70         """This method is run once after _each_ test method is executed"""
71
72     def test_init(self):
73         for f in deploy_files:
74             ds = DeploySettings('../config/deploy/{}'.format(f))
75
76     def test__validate_settings(self):
77         for c in test_deploy_content:
78             f = open('/tmp/apex_deploy_test_file', 'w')
79             f.write(c)
80             f.close()
81             assert_raises(DeploySettingsException,
82                           DeploySettings, '/tmp/apex_deploy_test_file')
83
84     def test_dump_bash(self):
85         # the performance file has the most use of the function
86         # so using that as the test case
87         ds = DeploySettings('../config/deploy/os-nosdn-performance-ha.yaml')
88         assert_equal(ds.dump_bash(), None)
89         assert_equal(ds.dump_bash(path='/dev/null'), None)