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:
Steve Purcell 2001-08-08 07:57:26 +00:00
parent a38d2608bc
commit e00dde2087
1 changed files with 4 additions and 3 deletions

View File

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