summaryrefslogtreecommitdiffstats
path: root/src/software/test/run.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/software/test/run.py')
-rwxr-xr-xsrc/software/test/run.py15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/software/test/run.py b/src/software/test/run.py
index 002bf77..aba362f 100755
--- a/src/software/test/run.py
+++ b/src/software/test/run.py
@@ -44,6 +44,11 @@ import rpmcache
# argument
CACHE_DIR = ''
+class NotFound(Exception):
+ """Raised when test of particular name could no be found."""
+ def __init__(self, name):
+ Exception.__init__(self, "Test \"%s\" could not be found!" % name)
+
def parse_cmd_line():
"""
Use ArgumentParser to parse command line arguments.
@@ -179,13 +184,18 @@ class LMITestLoader(unittest.TestLoader):
@param name is a name of test to find
@return desired TestCase or test function
"""
+ if ( isinstance(node, unittest.TestSuite)
+ and isinstance(next(iter(node)), unittest.TestCase)
+ and next(iter(node)).__class__.__name__ == name):
+ return node
for subnode in node:
if isinstance(subnode, unittest.TestSuite):
subnode = LMITestLoader.find_in_test_nodes(subnode, name)
if subnode is not None:
return subnode
elif isinstance(subnode, unittest.TestCase):
- if name == subnode.__class__.__name__:
+ if ( name == subnode.__class__.__name__
+ or name == subnode._testMethodName):
return subnode
elif inspect.isfunction(subnode) and name == subnode.__name__:
return subnode
@@ -201,8 +211,7 @@ class LMITestLoader(unittest.TestLoader):
for part in parts:
node = LMITestLoader.find_in_test_nodes(node, part)
if node is None:
- # name not found
- return unittest.TestLoader.loadTestsFromName(self, name, module)
+ raise NotFound(name)
return node
def unwind_test_suite_tree(node):