diff options
Diffstat (limited to 'Lib/doctest.py')
| -rw-r--r-- | Lib/doctest.py | 21 | 
1 files changed, 7 insertions, 14 deletions
| diff --git a/Lib/doctest.py b/Lib/doctest.py index 432ef05ef0..409472384d 100644 --- a/Lib/doctest.py +++ b/Lib/doctest.py @@ -530,8 +530,9 @@ class DocTest:              examples = '1 example'          else:              examples = '%d examples' % len(self.examples) -        return ('<DocTest %s from %s:%s (%s)>' % -                (self.name, self.filename, self.lineno, examples)) +        return ('<%s %s from %s:%s (%s)>' % +                (self.__class__.__name__, +                 self.name, self.filename, self.lineno, examples))      def __eq__(self, other):          if type(self) is not type(other): @@ -978,7 +979,8 @@ class DocTestFinder:              for valname, val in obj.__dict__.items():                  valname = '%s.%s' % (name, valname)                  # Recurse to functions & classes. -                if ((inspect.isroutine(val) or inspect.isclass(val)) and +                if ((inspect.isroutine(inspect.unwrap(val)) +                     or inspect.isclass(val)) and                      self._from_module(module, val)):                      self._find(tests, val, valname, module, source_lines,                                 globs, seen) @@ -1049,7 +1051,7 @@ class DocTestFinder:              filename = None          else:              filename = getattr(module, '__file__', module.__name__) -            if filename[-4:] in (".pyc", ".pyo"): +            if filename[-4:] == ".pyc":                  filename = filename[:-1]          return self._parser.get_doctest(docstring, globs, name,                                          filename, lineno) @@ -2367,15 +2369,6 @@ def DocTestSuite(module=None, globs=None, extraglobs=None, test_finder=None,          suite = _DocTestSuite()          suite.addTest(SkipDocTestCase(module))          return suite -    elif not tests: -        # Why do we want to do this? Because it reveals a bug that might -        # otherwise be hidden. -        # It is probably a bug that this exception is not also raised if the -        # number of doctest examples in tests is zero (i.e. if no doctest -        # examples were found).  However, we should probably not be raising -        # an exception at all here, though it is too late to make this change -        # for a maintenance release.  See also issue #14649. -        raise ValueError(module, "has no docstrings")      tests.sort()      suite = _DocTestSuite() @@ -2385,7 +2378,7 @@ def DocTestSuite(module=None, globs=None, extraglobs=None, test_finder=None,              continue          if not test.filename:              filename = module.__file__ -            if filename[-4:] in (".pyc", ".pyo"): +            if filename[-4:] == ".pyc":                  filename = filename[:-1]              test.filename = filename          suite.addTest(DocTestCase(test, **options)) | 
