]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Add UT for agent_extensions_manager
authorJakub Libosvar <libosvar@redhat.com>
Tue, 14 Jul 2015 14:48:28 +0000 (14:48 +0000)
committerJakub Libosvar <libosvar@redhat.com>
Mon, 27 Jul 2015 12:01:30 +0000 (14:01 +0200)
Partially-Implements: blueprint quantum-qos-api
Change-Id: I86cf669dabbdad9680b6739d59e0f81a74c8629f

neutron/agent/l2/agent_extensions_manager.py
neutron/tests/unit/agent/l2/test_agent_extensions_manager.py [new file with mode: 0644]

index 869849e7835e1a9e4d6e74e0ac4f4535b5a0bfd9..872e2438da563c12d8f6df44b6ef1d4c84f2f8a1 100644 (file)
@@ -21,7 +21,6 @@ from neutron.i18n import _LE, _LI
 LOG = log.getLogger(__name__)
 
 
-# TODO(QoS) add unit tests to Agent extensions mgr
 class AgentExtensionsManager(stevedore.named.NamedExtensionManager):
     """Manage agent extensions."""
 
diff --git a/neutron/tests/unit/agent/l2/test_agent_extensions_manager.py b/neutron/tests/unit/agent/l2/test_agent_extensions_manager.py
new file mode 100644 (file)
index 0000000..ed2247d
--- /dev/null
@@ -0,0 +1,57 @@
+#    Licensed under the Apache License, Version 2.0 (the "License"); you may
+#    not use this file except in compliance with the License. You may obtain
+#    a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing, software
+#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+#    License for the specific language governing permissions and limitations
+#    under the License.
+
+import mock
+
+from neutron.agent.l2 import agent_extensions_manager
+from neutron.tests import base
+
+
+class TestAgentExtensionsManager(base.BaseTestCase):
+
+    def setUp(self):
+        super(TestAgentExtensionsManager, self).setUp()
+        mock.patch('neutron.agent.l2.extensions.qos_agent.QosAgentExtension',
+                   autospec=True).start()
+        self.manager = agent_extensions_manager.AgentExtensionsManager()
+
+    def _get_extension(self):
+        return self.manager.extensions[0].obj
+
+    def test__call_on_agent_extension_missing_attribute_doesnt_crash(self):
+        self.manager._call_on_agent_extensions('foo', 'bar', 'baz')
+
+    def test_initialize(self):
+        self.manager.initialize()
+        ext = self._get_extension()
+        self.assertTrue(ext.initialize.called)
+
+    def test_handle_network(self):
+        context = object()
+        data = object()
+        self.manager.handle_network(context, data)
+        ext = self._get_extension()
+        ext.handle_network.assert_called_once_with(context, data)
+
+    def test_handle_subnet(self):
+        context = object()
+        data = object()
+        self.manager.handle_subnet(context, data)
+        ext = self._get_extension()
+        ext.handle_subnet.assert_called_once_with(context, data)
+
+    def test_handle_port(self):
+        context = object()
+        data = object()
+        self.manager.handle_port(context, data)
+        ext = self._get_extension()
+        ext.handle_port.assert_called_once_with(context, data)