]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
* Remove exc_info() kludge -- it actually messed up the Jython output
authorSteve Purcell <steve@pythonconsulting.com>
Mon, 9 Apr 2001 15:37:31 +0000 (15:37 +0000)
committerSteve Purcell <steve@pythonconsulting.com>
Mon, 9 Apr 2001 15:37:31 +0000 (15:37 +0000)
* Fixed TestLoader.loadTestsFromName() for nested packages
* Corrected the command-line usage summary

Lib/unittest.py

index eac5e78a11589a5e78991d1978894179d944cc17..1c2163f689fb0f0299390f76cc382fd2c0893cfb 100644 (file)
@@ -189,7 +189,7 @@ class TestCase:
             try:
                 self.setUp()
             except:
-                result.addError(self,self.__exc_info())
+                result.addError(self,sys.exc_info())
                 return
 
             ok = 0
@@ -197,14 +197,14 @@ class TestCase:
                 testMethod()
                 ok = 1
             except AssertionError, e:
-                result.addFailure(self,self.__exc_info())
+                result.addFailure(self,sys.exc_info())
             except:
-                result.addError(self,self.__exc_info())
+                result.addError(self,sys.exc_info())
 
             try:
                 self.tearDown()
             except:
-                result.addError(self,self.__exc_info())
+                result.addError(self,sys.exc_info())
                 ok = 0
             if ok: result.addSuccess(self)
         finally:
@@ -266,17 +266,6 @@ class TestCase:
         """Fail immediately, with the given message."""
         raise AssertionError, msg
 
-    def __exc_info(self):
-        """Return a version of sys.exc_info() with the traceback frame
-           minimised; usually the top level of the traceback frame is not
-           needed.
-        """
-        exctype, excvalue, tb = sys.exc_info()
-        newtb = tb.tb_next
-        if newtb is None:
-            return (exctype, excvalue, tb)
-        return (exctype, excvalue, newtb)
-
 
 class TestSuite:
     """A test suite is a composite test consisting of a number of TestCases.
@@ -400,7 +389,14 @@ class TestLoader:
             if not parts:
                 raise ValueError, "incomplete test name: %s" % name
             else:
-                module = __import__(parts)
+                parts_copy = parts[:]
+                while parts_copy:
+                    try:
+                        module = __import__(string.join(parts_copy,'.'))
+                        break
+                    except ImportError:
+                        del parts_copy[-1]
+                        if not parts_copy: raise
                 parts = parts[1:]
         obj = module
         for part in parts:
@@ -599,7 +595,7 @@ class TestProgram:
        for making test modules conveniently executable.
     """
     USAGE = """\
-Usage: %(progName)s [options] [test[:(casename|prefix-)]] [...]
+Usage: %(progName)s [options] [test] [...]
 
 Options:
   -h, --help       Show this message