From: Maru Newby Date: Fri, 17 Apr 2015 23:49:09 +0000 (+0000) Subject: Fix test discovery for api and functional paths X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=4000b18275112a0c9e3aa055fbaea634ac89a382;p=openstack-build%2Fneutron-build.git Fix test discovery for api and functional paths The use of the builtin unittest test loader was silently dropping tests that couldn't be imported. This change also drops the retargetable path from discovery in the api path due to a previously-masked configuration problem, and fixes an invalid import in a functional testing fixture module. Fullstack tests are also disabled temporarily pending a fix for #1446261. Change-Id: Ie44e45c117bd864538e7919dfcf499091fde7752 Related-Bug: #1440834 Related-Bug: #1443480 Closes-Bug: #1446405 --- diff --git a/neutron/tests/api/__init__.py b/neutron/tests/api/__init__.py index 0f4ba3681..e69de29bb 100644 --- a/neutron/tests/api/__init__.py +++ b/neutron/tests/api/__init__.py @@ -1,34 +0,0 @@ -# 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 unittest - - -# Allow the retargetable and tempest api tests to be executed as part -# of the same job by ensuring that tests from both paths are discovered. - - -def _discover(loader, path, pattern): - return loader.discover(path, pattern=pattern, top_level_dir=".") - - -def load_tests(_, tests, pattern): - suite = unittest.TestSuite() - suite.addTests(tests) - - loader = unittest.loader.TestLoader() - suite.addTests(_discover(loader, "./neutron/tests/api", pattern)) - suite.addTests(_discover(loader, - "./neutron/tests/retargetable", - pattern)) - - return suite diff --git a/neutron/tests/common/net_helpers.py b/neutron/tests/common/net_helpers.py index 551a28ad6..5d665f7f9 100644 --- a/neutron/tests/common/net_helpers.py +++ b/neutron/tests/common/net_helpers.py @@ -19,9 +19,9 @@ import fixtures import netaddr import six +from neutron.agent.common import ovs_lib from neutron.agent.linux import bridge_lib from neutron.agent.linux import ip_lib -from neutron.agent.linux import ovs_lib from neutron.common import constants as n_const from neutron.openstack.common import uuidutils from neutron.tests import base as tests_base diff --git a/neutron/tests/functional/__init__.py b/neutron/tests/functional/__init__.py index 50035b263..a2a87e23b 100644 --- a/neutron/tests/functional/__init__.py +++ b/neutron/tests/functional/__init__.py @@ -18,21 +18,17 @@ environmental requirements to the functional path are marked for discovery. """ -import unittest - - -def _discover(loader, path, pattern): - return loader.discover(path, pattern=pattern, top_level_dir=".") - - -def load_tests(_, tests, pattern): - suite = unittest.TestSuite() - suite.addTests(tests) - - loader = unittest.loader.TestLoader() - suite.addTests(_discover(loader, "./neutron/tests/functional", pattern)) - suite.addTests(_discover(loader, "./neutron/tests/fullstack", pattern)) - suite.addTests(_discover(loader, "./neutron/tests/retargetable", - pattern)) - - return suite +import os.path + + +def load_tests(loader, tests, pattern): + this_dir = os.path.dirname(__file__) + parent_dir = os.path.dirname(this_dir) + target_dirs = [ + this_dir, + os.path.join(parent_dir, 'retargetable'), + ] + for start_dir in target_dirs: + new_tests = loader.discover(start_dir=start_dir, pattern=pattern) + tests.addTests(new_tests) + return tests