Move tests: unit/network_services/nfvi
[yardstick.git] / yardstick / tests / unit / network_services / nfvi / test_collectd.py
1 # Copyright (c) 2016-2017 Intel Corporation
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 #      http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14
15 import unittest
16 import multiprocessing
17 import mock
18
19 from yardstick.network_services.nfvi.collectd import AmqpConsumer
20
21
22 class TestAmqpConsumer(unittest.TestCase):
23     def setUp(self):
24         self.queue = multiprocessing.Queue()
25         self.url = 'amqp://admin:admin@127.0.0.1:5672/%2F'
26         self.amqp_consumer = AmqpConsumer(self.url, self.queue)
27
28     def test___init__(self):
29         self.assertEqual(self.url, self.amqp_consumer._url)
30
31     def test_on_connection_open(self):
32         self.amqp_consumer._connection = mock.Mock(autospec=AmqpConsumer)
33         self.amqp_consumer._connection.add_on_close_callback = \
34             mock.Mock(return_value=0)
35         self.amqp_consumer._connection.channel = mock.Mock(return_value=0)
36         self.assertIsNone(self.amqp_consumer.on_connection_open(10))
37
38     def test_on_connection_closed(self):
39         self.amqp_consumer._connection = mock.Mock(autospec=AmqpConsumer)
40         self.amqp_consumer._connection.ioloop = mock.Mock()
41         self.amqp_consumer._connection.ioloop.stop = mock.Mock(return_value=0)
42         self.amqp_consumer._connection.add_timeout = mock.Mock(return_value=0)
43         self.amqp_consumer._closing = True
44         self.assertIsNone(
45             self.amqp_consumer.on_connection_closed("", 404, "Not Found"))
46         self.amqp_consumer._closing = False
47         self.assertIsNone(
48             self.amqp_consumer.on_connection_closed("", 404, "Not Found"))
49
50     def test_reconnect(self):
51         self.amqp_consumer._connection = mock.Mock(autospec=AmqpConsumer)
52         self.amqp_consumer._connection.ioloop = mock.Mock()
53         self.amqp_consumer._connection.ioloop.stop = mock.Mock(return_value=0)
54         self.amqp_consumer.connect = mock.Mock(return_value=0)
55         self.amqp_consumer._closing = True
56         self.assertIsNone(self.amqp_consumer.reconnect())
57
58     def test_on_channel_open(self):
59         self.amqp_consumer._connection = mock.Mock(autospec=AmqpConsumer)
60         self.amqp_consumer._connection.add_on_close_callback = \
61             mock.Mock(return_value=0)
62         self.amqp_consumer._channel = mock.Mock()
63         self.amqp_consumer.add_on_channel_close_callback = mock.Mock()
64         self.amqp_consumer._channel.exchange_declare = \
65             mock.Mock(return_value=0)
66         self.assertIsNone(
67             self.amqp_consumer.on_channel_open(self.amqp_consumer._channel))
68
69     def test_add_on_channel_close_callback(self):
70         self.amqp_consumer._connection = mock.Mock(autospec=AmqpConsumer)
71         self.amqp_consumer._connection.add_on_close_callback = \
72             mock.Mock(return_value=0)
73         self.amqp_consumer._channel = mock.Mock()
74         self.amqp_consumer._channel.add_on_close_callback = mock.Mock()
75         self.assertIsNone(self.amqp_consumer.add_on_channel_close_callback())
76
77     def test_on_channel_closed(self):
78         self.amqp_consumer._connection = mock.Mock(autospec=AmqpConsumer)
79         self.amqp_consumer._connection.close = mock.Mock(return_value=0)
80         _channel = mock.Mock()
81         self.assertIsNone(
82             self.amqp_consumer.on_channel_closed(_channel, "", ""))
83
84     def test_ion_exchange_declareok(self):
85         self.amqp_consumer.setup_queue = mock.Mock(return_value=0)
86         self.assertIsNone(self.amqp_consumer.on_exchange_declareok(10))
87
88     def test_setup_queue(self):
89         self.amqp_consumer._channel = mock.Mock()
90         self.amqp_consumer._channel.add_on_close_callback = mock.Mock()
91         self.assertIsNone(self.amqp_consumer.setup_queue("collectd"))
92
93     def test_on_queue_declareok(self):
94         self.amqp_consumer._channel = mock.Mock()
95         self.amqp_consumer._channel.queue_bind = mock.Mock()
96         self.assertIsNone(self.amqp_consumer.on_queue_declareok(10))
97
98     def test__on_bindok(self):
99         self.amqp_consumer._channel = mock.Mock()
100         self.amqp_consumer._channel.basic_consume = mock.Mock()
101         self.amqp_consumer.add_on_cancel_callback = mock.Mock()
102         self.assertIsNone(self.amqp_consumer._on_bindok(10))
103
104     def test_add_on_cancel_callback(self):
105         self.amqp_consumer._channel = mock.Mock()
106         self.amqp_consumer._channel.add_on_cancel_callback = mock.Mock()
107         self.assertIsNone(self.amqp_consumer.add_on_cancel_callback())
108
109     def test_on_consumer_cancelled(self):
110         self.amqp_consumer._channel = mock.Mock()
111         self.amqp_consumer._channel.close = mock.Mock()
112         self.assertIsNone(self.amqp_consumer.on_consumer_cancelled(10))
113
114     def test_on_message(self):
115         body = "msg {} cpu/cpu-0/ipc 101010:10"
116         properties = ""
117         basic_deliver = mock.Mock()
118         basic_deliver.delivery_tag = mock.Mock(return_value=0)
119         self.amqp_consumer.ack_message = mock.Mock()
120         self.assertIsNone(
121             self.amqp_consumer.on_message(10, basic_deliver, properties, body))
122
123     def test_ack_message(self):
124         self.amqp_consumer._channel = mock.Mock()
125         self.amqp_consumer._channel.basic_ack = mock.Mock()
126         self.assertIsNone(self.amqp_consumer.ack_message(10))
127
128     def test_on_cancelok(self):
129         self.amqp_consumer._channel = mock.Mock()
130         self.amqp_consumer._channel.close = mock.Mock()
131         self.assertIsNone(self.amqp_consumer.on_cancelok(10))
132
133     def test_run(self):
134         self.amqp_consumer._connection = mock.Mock(autospec=AmqpConsumer)
135         self.amqp_consumer.connect = mock.Mock()
136         self.amqp_consumer._connection.ioloop.start = mock.Mock()
137         self.assertIsNone(self.amqp_consumer.run())
138
139     def test_stop(self):
140         self.amqp_consumer._connection = mock.Mock(autospec=AmqpConsumer)
141         self.amqp_consumer.connect = mock.Mock()
142         self.amqp_consumer._connection.ioloop.start = mock.Mock()
143         self.amqp_consumer._channel = mock.Mock()
144         self.amqp_consumer._channel.basic_cancel = mock.Mock()
145         self.assertIsNone(self.amqp_consumer.stop())
146
147     def test_close_connection(self):
148         self.amqp_consumer._connection = mock.Mock(autospec=AmqpConsumer)
149         self.amqp_consumer._connection.close = mock.Mock()
150         self.assertIsNone(self.amqp_consumer.close_connection())