From 7b00b98bf9cd081769e690a1e9cbf01c555c475c Mon Sep 17 00:00:00 2001 From: Salvatore Orlando Date: Fri, 24 Aug 2012 06:38:06 -0700 Subject: [PATCH] Enable tox to run OVS plugin unit tests Fix bug 1029142 Unit tests have been moved into /quantum/tests/unit Change-Id: I5d0fa84826f62a86e4ab04c3e1958869f24a1fcf --- quantum/plugins/openvswitch/run_tests.py | 72 ------------------- quantum/plugins/openvswitch/tests/__init__.py | 0 .../openvswitch/tests/unit/__init__.py | 0 quantum/tests/unit/openvswitch/__init__.py | 16 +++++ .../test_openvswitch_plugin.py | 0 .../unit/openvswitch}/test_ovs_db.py | 0 .../unit/openvswitch/test_ovs_defaults.py} | 0 .../unit/{ => openvswitch}/test_ovs_lib.py | 0 .../unit/openvswitch/test_ovs_rpcapi.py} | 0 .../unit/openvswitch/test_ovs_tunnel.py} | 0 quantum/tests/unit/test_db_plugin.py | 14 +++- 11 files changed, 28 insertions(+), 74 deletions(-) delete mode 100755 quantum/plugins/openvswitch/run_tests.py delete mode 100644 quantum/plugins/openvswitch/tests/__init__.py delete mode 100644 quantum/plugins/openvswitch/tests/unit/__init__.py create mode 100644 quantum/tests/unit/openvswitch/__init__.py rename quantum/tests/unit/{ => openvswitch}/test_openvswitch_plugin.py (100%) rename quantum/{plugins/openvswitch/tests/unit => tests/unit/openvswitch}/test_ovs_db.py (100%) rename quantum/{plugins/openvswitch/tests/unit/test_defaults.py => tests/unit/openvswitch/test_ovs_defaults.py} (100%) rename quantum/tests/unit/{ => openvswitch}/test_ovs_lib.py (100%) rename quantum/{plugins/openvswitch/tests/unit/test_rpcapi.py => tests/unit/openvswitch/test_ovs_rpcapi.py} (100%) rename quantum/{plugins/openvswitch/tests/unit/test_tunnel.py => tests/unit/openvswitch/test_ovs_tunnel.py} (100%) diff --git a/quantum/plugins/openvswitch/run_tests.py b/quantum/plugins/openvswitch/run_tests.py deleted file mode 100755 index 8496c4a25..000000000 --- a/quantum/plugins/openvswitch/run_tests.py +++ /dev/null @@ -1,72 +0,0 @@ -#!/usr/bin/env python -# vim: tabstop=4 shiftwidth=4 softtabstop=4 - -# Copyright 2010 OpenStack, LLC -# All Rights Reserved. -# -# 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. - - -"""Unittest runner for quantum OVS plugin - -This file should be run from the top dir in the quantum directory - -To run all tests:: - PLUGIN_DIR=quantum/plugins/openvswitch ./run_tests.sh -""" - -import os -import sys - -from nose import config -from nose import core - -sys.path.append(os.getcwd()) -sys.path.append(os.path.dirname(__file__)) - -from quantum.common.test_lib import run_tests, test_config -import quantum.tests.unit - - -if __name__ == '__main__': - exit_status = False - - # if a single test case was specified, - # we should only invoked the tests once - invoke_once = len(sys.argv) > 1 - - test_config['plugin_name_v2'] = "ovs_quantum_plugin.OVSQuantumPluginV2" - - cwd = os.getcwd() - c = config.Config(stream=sys.stdout, - env=os.environ, - verbosity=3, - includeExe=True, - traverseNamespace=True, - plugins=core.DefaultPluginManager()) - c.configureWhere(quantum.tests.unit.__path__) - exit_status = run_tests(c) - - if invoke_once: - sys.exit(0) - - os.chdir(cwd) - - working_dir = os.path.abspath("quantum/plugins/openvswitch") - c = config.Config(stream=sys.stdout, - env=os.environ, - verbosity=3, - workingDir=working_dir) - exit_status = exit_status or run_tests(c) - - sys.exit(exit_status) diff --git a/quantum/plugins/openvswitch/tests/__init__.py b/quantum/plugins/openvswitch/tests/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/quantum/plugins/openvswitch/tests/unit/__init__.py b/quantum/plugins/openvswitch/tests/unit/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/quantum/tests/unit/openvswitch/__init__.py b/quantum/tests/unit/openvswitch/__init__.py new file mode 100644 index 000000000..cbf4a4506 --- /dev/null +++ b/quantum/tests/unit/openvswitch/__init__.py @@ -0,0 +1,16 @@ +# vim: tabstop=4 shiftwidth=4 softtabstop=4 + +# Copyright 2012 OpenStack LLC. +# All Rights Reserved. +# +# 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. diff --git a/quantum/tests/unit/test_openvswitch_plugin.py b/quantum/tests/unit/openvswitch/test_openvswitch_plugin.py similarity index 100% rename from quantum/tests/unit/test_openvswitch_plugin.py rename to quantum/tests/unit/openvswitch/test_openvswitch_plugin.py diff --git a/quantum/plugins/openvswitch/tests/unit/test_ovs_db.py b/quantum/tests/unit/openvswitch/test_ovs_db.py similarity index 100% rename from quantum/plugins/openvswitch/tests/unit/test_ovs_db.py rename to quantum/tests/unit/openvswitch/test_ovs_db.py diff --git a/quantum/plugins/openvswitch/tests/unit/test_defaults.py b/quantum/tests/unit/openvswitch/test_ovs_defaults.py similarity index 100% rename from quantum/plugins/openvswitch/tests/unit/test_defaults.py rename to quantum/tests/unit/openvswitch/test_ovs_defaults.py diff --git a/quantum/tests/unit/test_ovs_lib.py b/quantum/tests/unit/openvswitch/test_ovs_lib.py similarity index 100% rename from quantum/tests/unit/test_ovs_lib.py rename to quantum/tests/unit/openvswitch/test_ovs_lib.py diff --git a/quantum/plugins/openvswitch/tests/unit/test_rpcapi.py b/quantum/tests/unit/openvswitch/test_ovs_rpcapi.py similarity index 100% rename from quantum/plugins/openvswitch/tests/unit/test_rpcapi.py rename to quantum/tests/unit/openvswitch/test_ovs_rpcapi.py diff --git a/quantum/plugins/openvswitch/tests/unit/test_tunnel.py b/quantum/tests/unit/openvswitch/test_ovs_tunnel.py similarity index 100% rename from quantum/plugins/openvswitch/tests/unit/test_tunnel.py rename to quantum/tests/unit/openvswitch/test_ovs_tunnel.py diff --git a/quantum/tests/unit/test_db_plugin.py b/quantum/tests/unit/test_db_plugin.py index 5bdbeb428..0ea79f8c7 100644 --- a/quantum/tests/unit/test_db_plugin.py +++ b/quantum/tests/unit/test_db_plugin.py @@ -56,14 +56,22 @@ class QuantumDbPluginV2TestCase(unittest2.TestCase): def setUp(self, plugin=None): super(QuantumDbPluginV2TestCase, self).setUp() - # NOTE(jkoelker) for a 'pluggable' framework, Quantum sure # doesn't like when the plugin changes ;) db._ENGINE = None db._MAKER = None # Make sure at each test a new instance of the plugin is returned QuantumManager._instance = None - + # Save the attributes map in case the plugin will alter it + # loading extensions + # Note(salvatore-orlando): shallow copy is not good enough in + # this case, but copy.deepcopy does not seem to work, since it + # causes test failures + self._attribute_map_bk = {} + for item in attributes.RESOURCE_ATTRIBUTE_MAP: + self._attribute_map_bk[item] = (attributes. + RESOURCE_ATTRIBUTE_MAP[item]. + copy()) self._tenant_id = 'test-tenant' json_deserializer = JSONDeserializer() @@ -105,6 +113,8 @@ class QuantumDbPluginV2TestCase(unittest2.TestCase): db._ENGINE = None db._MAKER = None cfg.CONF.reset() + # Restore the original attribute map + attributes.RESOURCE_ATTRIBUTE_MAP = self._attribute_map_bk def _req(self, method, resource, data=None, fmt='json', id=None, params=None, action=None): -- 2.45.2