diff options
Diffstat (limited to 'src/software/test/run.py')
-rwxr-xr-x | src/software/test/run.py | 15 |
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): |