Merge "Add a new runner to test end-to-end fast data path"
[yardstick.git] / tests / unit / orchestrator / test_heat.py
1 #!/usr/bin/env python
2
3 ##############################################################################
4 # Copyright (c) 2017 Intel Corporation
5 #
6 # All rights reserved. This program and the accompanying materials
7 # are made available under the terms of the Apache License, Version 2.0
8 # which accompanies this distribution, and is available at
9 # http://www.apache.org/licenses/LICENSE-2.0
10 ##############################################################################
11
12 # Unittest for yardstick.benchmark.orchestrator.heat
13
14 import unittest
15 import uuid
16 import mock
17
18 from yardstick.orchestrator import heat
19
20
21 class HeatContextTestCase(unittest.TestCase):
22
23     def test_get_short_key_uuid(self):
24         u = uuid.uuid4()
25         k = heat.get_short_key_uuid(u)
26         self.assertEqual(heat.HEAT_KEY_UUID_LENGTH, len(k))
27         self.assertIn(k, str(u))
28
29 class HeatTemplateTestCase(unittest.TestCase):
30
31     def setUp(self):
32         self.template = heat.HeatTemplate('test')
33
34     def test_add_tenant_network(self):
35         self.template.add_network('some-network')
36
37         self.assertEqual(self.template.resources['some-network']['type'], 'OS::Neutron::Net')
38
39     def test_add_provider_network(self):
40         self.template.add_network('some-network', 'physnet2', 'sriov')
41
42         self.assertEqual(self.template.resources['some-network']['type'], 'OS::Neutron::ProviderNet')
43         self.assertEqual(self.template.resources['some-network']['properties']['physical_network'], 'physnet2')
44
45     def test_add_subnet(self):
46         netattrs = {'cidr': '10.0.0.0/24', 'provider': None, 'external_network': 'ext_net'}
47         self.template.add_subnet('some-subnet', "some-network", netattrs['cidr'])
48
49         self.assertEqual(self.template.resources['some-subnet']['type'], 'OS::Neutron::Subnet')
50         self.assertEqual(self.template.resources['some-subnet']['properties']['cidr'], '10.0.0.0/24')
51
52     def test_add_router(self):
53         self.template.add_router('some-router', 'ext-net', 'some-subnet')
54
55         self.assertEqual(self.template.resources['some-router']['type'], 'OS::Neutron::Router')
56         self.assertIn('some-subnet', self.template.resources['some-router']['depends_on'])
57
58     def test_add_router_interface(self):
59         self.template.add_router_interface('some-router-if', 'some-router', 'some-subnet')
60
61         self.assertEqual(self.template.resources['some-router-if']['type'], 'OS::Neutron::RouterInterface')
62         self.assertIn('some-subnet', self.template.resources['some-router-if']['depends_on'])
63
64     def test_add_servergroup(self):
65         self.template.add_servergroup('some-server-group', 'anti-affinity')
66
67         self.assertEqual(self.template.resources['some-server-group']['type'], 'OS::Nova::ServerGroup')
68         self.assertEqual(self.template.resources['some-server-group']['properties']['policies'], ['anti-affinity'])
69
70 class HeatStackTestCase(unittest.TestCase):
71
72     def test_delete_calls__delete_multiple_times(self):
73         stack = heat.HeatStack('test')
74         stack.uuid = 1
75         with mock.patch.object(stack, "_delete") as delete_mock:
76             stack.delete()
77         # call once and then call again if uuid is not none
78         self.assertGreater(delete_mock.call_count, 1)
79
80     def test_delete_all_calls_delete(self):
81         stack = heat.HeatStack('test')
82         stack.uuid = 1
83         with mock.patch.object(stack, "delete") as delete_mock:
84             stack.delete_all()
85         self.assertGreater(delete_mock.call_count, 0)