diff options
author | Jason Pellerin <jpellerin@gmail.com> | 2009-02-04 03:02:45 +0000 |
---|---|---|
committer | Jason Pellerin <jpellerin@gmail.com> | 2009-02-04 03:02:45 +0000 |
commit | e7c9adce0db6a6facc0c90b99a7ed040677f1bae (patch) | |
tree | a3f0183cb152ecd5c0ef6e71b5c2071d3bbb9660 /nose/loader.py | |
parent | 88950229ed2c97ae01dac66c07048769d8cc1915 (diff) | |
download | nose-e7c9adce0db6a6facc0c90b99a7ed040677f1bae.tar.gz |
Made it possible to just "yield test" in test generators
Diffstat (limited to 'nose/loader.py')
-rw-r--r-- | nose/loader.py | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/nose/loader.py b/nose/loader.py index 284a8b3..15544be 100644 --- a/nose/loader.py +++ b/nose/loader.py @@ -219,10 +219,7 @@ class TestLoader(unittest.TestLoader): """ def generate(g=generator, m=module): for test in g(): - try: - test_func, arg = (test[0], test[1:]) - except ValueError: - test_func, arg = test[0], tuple() + test_func, arg = self.parseGeneratedTest(test) if not callable(test_func): test_func = getattr(m, test_func) yield FunctionTestCase(test_func, arg=arg, descriptor=g) @@ -247,10 +244,7 @@ class TestLoader(unittest.TestLoader): def generate(g=generator, c=cls): for test in g(): - try: - test_func, arg = (test[0], test[1:]) - except ValueError: - test_func, arg = test[0], tuple() + test_func, arg = self.parseGeneratedTest(test) if not callable(test_func): test_func = getattr(c, test_func) if ismethod(test_func): @@ -515,5 +509,20 @@ class TestLoader(unittest.TestLoader): obj = Failure(ValueError, "No such test %s" % name) return parent, obj + def parseGeneratedTest(self, test): + """Given the yield value of a test generator, return a func and args. + + This is used in the two loadTestsFromGenerator* methods. + + """ + if not isinstance(test, tuple): # yield test + test_func, arg = (test, tuple()) + elif len(test) == 1: # yield (test,) + test_func, arg = (test[0], tuple()) + else: # yield test, foo, bar, ... + assert len(test) > 1 # sanity check + test_func, arg = (test[0], test[1:]) + return test_func, arg + defaultTestLoader = TestLoader |