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.

Note:
- fullstack tests are not really working in Kilo, so it's fine to
  disable them for the branch.

Change-Id: Ie44e45c117bd864538e7919dfcf499091fde7752
Related-Bug: #1440834
Related-Bug: #1443480
Closes-Bug: #1446405
(cherry picked from commit 4000b18275)
This commit is contained in:
Maru Newby 2015-04-17 23:49:09 +00:00 committed by Ihar Hrachyshka
parent 5eff0019dc
commit ae5ffa3f9f
3 changed files with 13 additions and 51 deletions

View File

@ -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

View File

@ -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

View File

@ -18,21 +18,17 @@ environmental requirements to the functional path are marked for
discovery.
"""
import unittest
import os.path
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
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