aboutsummaryrefslogtreecommitdiffstats
path: root/functest/tests/unit/opnfv_tests/vnf/ims/test_orchestrator_cloudify.py
blob: 620b0216f165c126e1c920b4b34afd6fd917582e (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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#!/usr/bin/env python

# 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 logging
import unittest

import mock

from functest.opnfv_tests.vnf.ims import orchestrator_cloudify


class ImsVnfTesting(unittest.TestCase):

    logging.disable(logging.CRITICAL)

    def setUp(self):
        self.orchestrator = orchestrator_cloudify.Orchestrator('test_dir')
        self.bp = {'file_name': 'test_file',
                   'destination_folder': 'test_folder',
                   'url': 'test_url',
                   'branch': 'test_branch'}

    def test_download_manager_blueprint_download_blueprint_failed(self):
        self.orchestrator.manager_blueprint = False
        with mock.patch.object(self.orchestrator, '_download_blueprints',
                               return_value=False), \
            mock.patch('functest.opnfv_tests.vnf.ims.orchestrator_cloudify.'
                       'exit') as mock_exit:
            self.orchestrator.download_manager_blueprint('test_url',
                                                         'test_branch')
            mock_exit.assert_any_call(-1)

    def test_download_manager_blueprint_download_blueprint_passed(self):
        self.orchestrator.manager_blueprint = False
        with mock.patch.object(self.orchestrator, '_download_blueprints',
                               return_value=True):
            self.orchestrator.download_manager_blueprint('test_url',
                                                         'test_branch')
            self.assertEqual(self.orchestrator.manager_blueprint,
                             True)

    def test_deploy_manager_failed(self):
        self.orchestrator.manager_blueprint = True
        with mock.patch('__builtin__.open', mock.mock_open()), \
            mock.patch('functest.opnfv_tests.vnf.ims.orchestrator_cloudify.'
                       'os.remove'), \
            mock.patch('functest.opnfv_tests.vnf.ims.orchestrator_cloudify.'
                       'execute_command', return_value='error'):
            self.assertEqual(self.orchestrator.deploy_manager(),
                             'error')
            self.assertEqual(self.orchestrator.manager_up,
                             False)

    def test_deploy_manager_passed(self):
        self.orchestrator.manager_blueprint = True
        with mock.patch('__builtin__.open', mock.mock_open()), \
            mock.patch('functest.opnfv_tests.vnf.ims.orchestrator_cloudify.'
                       'os.remove'), \
            mock.patch('functest.opnfv_tests.vnf.ims.orchestrator_cloudify.'
                       'execute_command', return_value=''):
            self.orchestrator.deploy_manager()
            self.assertEqual(self.orchestrator.manager_up,
                             True)

    def test_undeploy_manager_passed(self):
        with mock.patch('functest.opnfv_tests.vnf.ims.orchestrator_cloudify.'
                        'execute_command', return_value=''):
            self.orchestrator.deploy_manager()
            self.assertEqual(self.orchestrator.manager_up,
                             False)

    def test_dwnld_upload_and_depl_blueprint_dwnld_blueprint_failed(self):
        with mock.patch.object(self.orchestrator, '_download_blueprints',
                               return_value=False), \
            mock.patch('functest.opnfv_tests.vnf.ims.orchestrator_cloudify.'
                       'exit', side_effect=Exception) as mock_exit, \
                self.assertRaises(Exception):
            self.orchestrator.download_upload_and_deploy_blueprint(self.bp,
                                                                   'cfig',
                                                                   'bpn',
                                                                   'dpn')
            mock_exit.assert_any_call(-1)

    def test_dwnld_upload_and_depl_blueprint_failed(self):
        with mock.patch.object(self.orchestrator, '_download_blueprints',
                               return_value=True), \
            mock.patch('__builtin__.open', mock.mock_open()), \
            mock.patch('functest.opnfv_tests.vnf.ims.orchestrator_cloudify.'
                       'execute_command', return_value='error'):
            r = self.orchestrator.download_upload_and_deploy_blueprint(self.bp,
                                                                       'cfig',
                                                                       'bpn',
                                                                       'dpn')
            self.assertEqual(r, 'error')

    def test__download_blueprints_failed(self):
        with mock.patch('functest.opnfv_tests.vnf.ims.orchestrator_cloudify.'
                        'shutil.rmtree'), \
            mock.patch('functest.opnfv_tests.vnf.ims.orchestrator_cloudify.'
                       'Repo.clone_from', side_effect=Exception):
            self.assertEqual(self.orchestrator._download_blueprints('bp_url',
                                                                    'branch',
                                                                    'dest'),
                             False)

    def test__download_blueprints_passed(self):
        with mock.patch('functest.opnfv_tests.vnf.ims.orchestrator_cloudify.'
                        'shutil.rmtree'), \
            mock.patch('functest.opnfv_tests.vnf.ims.orchestrator_cloudify.'
                       'Repo.clone_from'):
            self.assertEqual(self.orchestrator._download_blueprints('bp_url',
                                                                    'branch',
                                                                    'dest'),
                             True)


if __name__ == "__main__":
    unittest.main(verbosity=2)