Merged in bugfix from PyUnit CVS for problem reported by Gary Todd.
If 'unittest.py' was run from the command line with the name of a test case class as a parameter, it failed with an ugly error. (Which was a shame, because the documentation says you can do that.) The problem was the old 'is the class X that you imported from me the same as my class X?' gotcha.
This commit is contained in:
parent
a38d2608bc
commit
e00dde2087
|
@ -432,16 +432,17 @@ class TestLoader:
|
|||
for part in parts:
|
||||
obj = getattr(obj, part)
|
||||
|
||||
import unittest
|
||||
if type(obj) == types.ModuleType:
|
||||
return self.loadTestsFromModule(obj)
|
||||
elif type(obj) == types.ClassType and issubclass(obj, TestCase):
|
||||
elif type(obj) == types.ClassType and issubclass(obj, unittest.TestCase):
|
||||
return self.loadTestsFromTestCase(obj)
|
||||
elif type(obj) == types.UnboundMethodType:
|
||||
return obj.im_class(obj.__name__)
|
||||
elif callable(obj):
|
||||
test = obj()
|
||||
if not isinstance(test, TestCase) and \
|
||||
not isinstance(test, TestSuite):
|
||||
if not isinstance(test, unittest.TestCase) and \
|
||||
not isinstance(test, unittest.TestSuite):
|
||||
raise ValueError, \
|
||||
"calling %s returned %s, not a test" % (obj,test)
|
||||
return test
|
||||
|
|
Loading…
Reference in New Issue