Loading django/test/_doctest.py +9 −46 Original line number Diff line number Diff line Loading @@ -144,8 +144,6 @@ if sys.platform.startswith('java'): # Option constants. OPTIONFLAGS_BY_NAME = {} def register_optionflag(name): # Create a new flag unless `name` is already known. return OPTIONFLAGS_BY_NAME.setdefault(name, 1 << len(OPTIONFLAGS_BY_NAME)) Loading Loading @@ -196,7 +194,6 @@ ELLIPSIS_MARKER = '...' ## 1. Utility Functions ###################################################################### def _extract_future_flags(globs): """ Return the compiler-flags associated with the future features that Loading @@ -209,7 +206,6 @@ def _extract_future_flags(globs): flags |= feature.compiler_flag return flags def _normalize_module(module, depth=2): """ Return the module specified by `module`. In particular: Loading @@ -229,7 +225,6 @@ def _normalize_module(module, depth=2): else: raise TypeError("Expected a module, string, or None") def _load_testfile(filename, package, module_relative): if module_relative: package = _normalize_module(package, 3) Loading @@ -243,7 +238,6 @@ def _load_testfile(filename, package, module_relative): with open(filename) as fp: return fp.read(), filename def _indent(s, indent=4): """ Add the given number of space characters to the beginning every Loading @@ -252,7 +246,6 @@ def _indent(s, indent=4): # This regexp matches the start of non-blank lines: return re.sub('(?m)^(?!$)', indent*' ', s) def _exception_traceback(exc_info): """ Return a string containing a traceback message for the given Loading @@ -264,7 +257,6 @@ def _exception_traceback(exc_info): traceback.print_exception(exc_type, exc_val, exc_tb, file=excout) return excout.getvalue() # Override some StringIO methods. class _SpoofOut(StringIO): def getvalue(self): Loading @@ -285,7 +277,6 @@ class _SpoofOut(StringIO): if hasattr(self, "softspace"): del self.softspace # Worst-case linear-time ellipsis matching. def _ellipsis_match(want, got): """ Loading Loading @@ -336,7 +327,6 @@ def _ellipsis_match(want, got): return True def _comment_line(line): "Return a commented form of the given line" line = line.rstrip() Loading @@ -345,7 +335,6 @@ def _comment_line(line): else: return '#' class _OutputRedirectingPdb(pdb.Pdb): """ A specialized version of the python debugger that redirects stdout Loading Loading @@ -379,7 +368,6 @@ class _OutputRedirectingPdb(pdb.Pdb): finally: sys.stdout = save_stdout # [XX] Normalize with respect to os.path.pardir? def _module_relative_path(module, path): if not inspect.ismodule(module): Loading Loading @@ -417,7 +405,6 @@ def _module_relative_path(module, path): ## a string (such as an object's docstring). The DocTest class also ## includes information about where the string was extracted from. class Example: """ A single doctest example, consisting of source code and expected Loading Loading @@ -471,7 +458,6 @@ class Example: self.options = options self.exc_msg = exc_msg class DocTest: """ A collection of doctest examples that should be run in a single Loading Loading @@ -520,10 +506,10 @@ class DocTest: return ('<DocTest %s from %s:%s (%s)>' % (self.name, self.filename, self.lineno, examples)) # This lets us sort tests by name: def _cmpkey(self): return (self.name, self.filename, self.lineno, id(self)) def __cmp__(self, other): if not isinstance(other, DocTest): return -1 Loading Loading @@ -1068,7 +1054,6 @@ class DocTestFinder: ## 5. DocTest Runner ###################################################################### class DocTestRunner: """ A class used to run DocTest test cases, and accumulate statistics. Loading Loading @@ -1423,7 +1408,6 @@ class DocTestRunner: __LINECACHE_FILENAME_RE = re.compile(r'<doctest ' r'(?P<name>[\w\.]+)' r'\[(?P<examplenum>\d+)\]>$') def __patched_linecache_getlines(self, filename, module_globals=None): m = self.__LINECACHE_FILENAME_RE.match(filename) if m and m.group('name') == self.test.name: Loading Loading @@ -1557,7 +1541,6 @@ class DocTestRunner: t = t + t2 d[name] = f, t class OutputChecker: """ A class used to check the whether the actual output from a doctest Loading Loading @@ -1691,7 +1674,6 @@ class OutputChecker: else: return 'Expected nothing\nGot nothing\n' class DocTestFailure(Exception): """A DocTest example has failed in debugging mode. Loading @@ -1711,7 +1693,6 @@ class DocTestFailure(Exception): def __str__(self): return str(self.test) class UnexpectedException(Exception): """A DocTest example has encountered an unexpected exception Loading @@ -1731,7 +1712,6 @@ class UnexpectedException(Exception): def __str__(self): return str(self.test) class DebugRunner(DocTestRunner): r"""Run doc tests but raise an exception as soon as there is a failure. Loading Loading @@ -1844,7 +1824,6 @@ class DebugRunner(DocTestRunner): # class, updated by testmod. master = None def testmod(m=None, name=None, globs=None, verbose=None, report=True, optionflags=0, extraglobs=None, raise_on_error=False, exclude_empty=False): Loading Loading @@ -1949,7 +1928,6 @@ def testmod(m=None, name=None, globs=None, verbose=None, return runner.failures, runner.tries def testfile(filename, module_relative=True, name=None, package=None, globs=None, verbose=None, report=True, optionflags=0, extraglobs=None, raise_on_error=False, parser=DocTestParser(), Loading Loading @@ -2073,7 +2051,6 @@ def testfile(filename, module_relative=True, name=None, package=None, return runner.failures, runner.tries def run_docstring_examples(f, globs, verbose=False, name="NoName", compileflags=None, optionflags=0): """ Loading Loading @@ -2103,7 +2080,6 @@ def run_docstring_examples(f, globs, verbose=False, name="NoName", # This is provided only for backwards compatibility. It's not # actually used in any way. class Tester: def __init__(self, mod=None, globs=None, verbose=None, optionflags=0): Loading Loading @@ -2169,7 +2145,6 @@ class Tester: _unittest_reportflags = 0 def set_unittest_reportflags(flags): """Sets the unittest option flags. Loading Loading @@ -2353,7 +2328,6 @@ class DocTestCase(unittest.TestCase): def shortDescription(self): return "Doctest: " + self._dt_test.name def DocTestSuite(module=None, globs=None, extraglobs=None, test_finder=None, test_class=DocTestCase, **options): """ Loading Loading @@ -2417,7 +2391,6 @@ def DocTestSuite(module=None, globs=None, extraglobs=None, test_finder=None, return suite class DocFileCase(DocTestCase): def id(self): Loading @@ -2432,7 +2405,6 @@ class DocFileCase(DocTestCase): % (self._dt_test.name, self._dt_test.filename, err) ) def DocFileTest(path, module_relative=True, package=None, globs=None, parser=DocTestParser(), encoding=None, **options): Loading Loading @@ -2462,7 +2434,6 @@ def DocFileTest(path, module_relative=True, package=None, test = parser.get_doctest(doc, globs, name, path, 0) return DocFileCase(test, **options) def DocFileSuite(*paths, **kw): """A unittest suite for one or more doctest files. Loading Loading @@ -2536,7 +2507,6 @@ def DocFileSuite(*paths, **kw): ## 9. Debugging Support ###################################################################### def script_from_examples(s): r"""Extract script from text with examples. Loading Loading @@ -2617,7 +2587,6 @@ def script_from_examples(s): # Combine the output, and return it. return '\n'.join(output) def testsource(module, name): """Extract the test sources from a doctest docstring as a script. Loading @@ -2634,13 +2603,11 @@ def testsource(module, name): testsrc = script_from_examples(test.docstring) return testsrc def debug_src(src, pm=False, globs=None): """Debug a single doctest docstring, in argument `src`'""" testsrc = script_from_examples(src) debug_script(testsrc, pm, globs) def debug_script(src, pm=False, globs=None): "Debug a test script. `src` is the script, as a string." import pdb Loading Loading @@ -2672,7 +2639,6 @@ def debug_script(src, pm=False, globs=None): finally: os.remove(srcfilename) def debug(module, name, pm=False): """Debug a single doctest docstring. Loading @@ -2687,8 +2653,6 @@ def debug(module, name, pm=False): ###################################################################### ## 10. Example Usage ###################################################################### class _TestClass: """ A pointless class, for sanity-checking of docstring testing. Loading Loading @@ -2783,7 +2747,6 @@ __test__ = {"_TestClass": _TestClass, """, } def _test(): r = unittest.TextTestRunner() r.run(DocTestSuite()) Loading Loading
django/test/_doctest.py +9 −46 Original line number Diff line number Diff line Loading @@ -144,8 +144,6 @@ if sys.platform.startswith('java'): # Option constants. OPTIONFLAGS_BY_NAME = {} def register_optionflag(name): # Create a new flag unless `name` is already known. return OPTIONFLAGS_BY_NAME.setdefault(name, 1 << len(OPTIONFLAGS_BY_NAME)) Loading Loading @@ -196,7 +194,6 @@ ELLIPSIS_MARKER = '...' ## 1. Utility Functions ###################################################################### def _extract_future_flags(globs): """ Return the compiler-flags associated with the future features that Loading @@ -209,7 +206,6 @@ def _extract_future_flags(globs): flags |= feature.compiler_flag return flags def _normalize_module(module, depth=2): """ Return the module specified by `module`. In particular: Loading @@ -229,7 +225,6 @@ def _normalize_module(module, depth=2): else: raise TypeError("Expected a module, string, or None") def _load_testfile(filename, package, module_relative): if module_relative: package = _normalize_module(package, 3) Loading @@ -243,7 +238,6 @@ def _load_testfile(filename, package, module_relative): with open(filename) as fp: return fp.read(), filename def _indent(s, indent=4): """ Add the given number of space characters to the beginning every Loading @@ -252,7 +246,6 @@ def _indent(s, indent=4): # This regexp matches the start of non-blank lines: return re.sub('(?m)^(?!$)', indent*' ', s) def _exception_traceback(exc_info): """ Return a string containing a traceback message for the given Loading @@ -264,7 +257,6 @@ def _exception_traceback(exc_info): traceback.print_exception(exc_type, exc_val, exc_tb, file=excout) return excout.getvalue() # Override some StringIO methods. class _SpoofOut(StringIO): def getvalue(self): Loading @@ -285,7 +277,6 @@ class _SpoofOut(StringIO): if hasattr(self, "softspace"): del self.softspace # Worst-case linear-time ellipsis matching. def _ellipsis_match(want, got): """ Loading Loading @@ -336,7 +327,6 @@ def _ellipsis_match(want, got): return True def _comment_line(line): "Return a commented form of the given line" line = line.rstrip() Loading @@ -345,7 +335,6 @@ def _comment_line(line): else: return '#' class _OutputRedirectingPdb(pdb.Pdb): """ A specialized version of the python debugger that redirects stdout Loading Loading @@ -379,7 +368,6 @@ class _OutputRedirectingPdb(pdb.Pdb): finally: sys.stdout = save_stdout # [XX] Normalize with respect to os.path.pardir? def _module_relative_path(module, path): if not inspect.ismodule(module): Loading Loading @@ -417,7 +405,6 @@ def _module_relative_path(module, path): ## a string (such as an object's docstring). The DocTest class also ## includes information about where the string was extracted from. class Example: """ A single doctest example, consisting of source code and expected Loading Loading @@ -471,7 +458,6 @@ class Example: self.options = options self.exc_msg = exc_msg class DocTest: """ A collection of doctest examples that should be run in a single Loading Loading @@ -520,10 +506,10 @@ class DocTest: return ('<DocTest %s from %s:%s (%s)>' % (self.name, self.filename, self.lineno, examples)) # This lets us sort tests by name: def _cmpkey(self): return (self.name, self.filename, self.lineno, id(self)) def __cmp__(self, other): if not isinstance(other, DocTest): return -1 Loading Loading @@ -1068,7 +1054,6 @@ class DocTestFinder: ## 5. DocTest Runner ###################################################################### class DocTestRunner: """ A class used to run DocTest test cases, and accumulate statistics. Loading Loading @@ -1423,7 +1408,6 @@ class DocTestRunner: __LINECACHE_FILENAME_RE = re.compile(r'<doctest ' r'(?P<name>[\w\.]+)' r'\[(?P<examplenum>\d+)\]>$') def __patched_linecache_getlines(self, filename, module_globals=None): m = self.__LINECACHE_FILENAME_RE.match(filename) if m and m.group('name') == self.test.name: Loading Loading @@ -1557,7 +1541,6 @@ class DocTestRunner: t = t + t2 d[name] = f, t class OutputChecker: """ A class used to check the whether the actual output from a doctest Loading Loading @@ -1691,7 +1674,6 @@ class OutputChecker: else: return 'Expected nothing\nGot nothing\n' class DocTestFailure(Exception): """A DocTest example has failed in debugging mode. Loading @@ -1711,7 +1693,6 @@ class DocTestFailure(Exception): def __str__(self): return str(self.test) class UnexpectedException(Exception): """A DocTest example has encountered an unexpected exception Loading @@ -1731,7 +1712,6 @@ class UnexpectedException(Exception): def __str__(self): return str(self.test) class DebugRunner(DocTestRunner): r"""Run doc tests but raise an exception as soon as there is a failure. Loading Loading @@ -1844,7 +1824,6 @@ class DebugRunner(DocTestRunner): # class, updated by testmod. master = None def testmod(m=None, name=None, globs=None, verbose=None, report=True, optionflags=0, extraglobs=None, raise_on_error=False, exclude_empty=False): Loading Loading @@ -1949,7 +1928,6 @@ def testmod(m=None, name=None, globs=None, verbose=None, return runner.failures, runner.tries def testfile(filename, module_relative=True, name=None, package=None, globs=None, verbose=None, report=True, optionflags=0, extraglobs=None, raise_on_error=False, parser=DocTestParser(), Loading Loading @@ -2073,7 +2051,6 @@ def testfile(filename, module_relative=True, name=None, package=None, return runner.failures, runner.tries def run_docstring_examples(f, globs, verbose=False, name="NoName", compileflags=None, optionflags=0): """ Loading Loading @@ -2103,7 +2080,6 @@ def run_docstring_examples(f, globs, verbose=False, name="NoName", # This is provided only for backwards compatibility. It's not # actually used in any way. class Tester: def __init__(self, mod=None, globs=None, verbose=None, optionflags=0): Loading Loading @@ -2169,7 +2145,6 @@ class Tester: _unittest_reportflags = 0 def set_unittest_reportflags(flags): """Sets the unittest option flags. Loading Loading @@ -2353,7 +2328,6 @@ class DocTestCase(unittest.TestCase): def shortDescription(self): return "Doctest: " + self._dt_test.name def DocTestSuite(module=None, globs=None, extraglobs=None, test_finder=None, test_class=DocTestCase, **options): """ Loading Loading @@ -2417,7 +2391,6 @@ def DocTestSuite(module=None, globs=None, extraglobs=None, test_finder=None, return suite class DocFileCase(DocTestCase): def id(self): Loading @@ -2432,7 +2405,6 @@ class DocFileCase(DocTestCase): % (self._dt_test.name, self._dt_test.filename, err) ) def DocFileTest(path, module_relative=True, package=None, globs=None, parser=DocTestParser(), encoding=None, **options): Loading Loading @@ -2462,7 +2434,6 @@ def DocFileTest(path, module_relative=True, package=None, test = parser.get_doctest(doc, globs, name, path, 0) return DocFileCase(test, **options) def DocFileSuite(*paths, **kw): """A unittest suite for one or more doctest files. Loading Loading @@ -2536,7 +2507,6 @@ def DocFileSuite(*paths, **kw): ## 9. Debugging Support ###################################################################### def script_from_examples(s): r"""Extract script from text with examples. Loading Loading @@ -2617,7 +2587,6 @@ def script_from_examples(s): # Combine the output, and return it. return '\n'.join(output) def testsource(module, name): """Extract the test sources from a doctest docstring as a script. Loading @@ -2634,13 +2603,11 @@ def testsource(module, name): testsrc = script_from_examples(test.docstring) return testsrc def debug_src(src, pm=False, globs=None): """Debug a single doctest docstring, in argument `src`'""" testsrc = script_from_examples(src) debug_script(testsrc, pm, globs) def debug_script(src, pm=False, globs=None): "Debug a test script. `src` is the script, as a string." import pdb Loading Loading @@ -2672,7 +2639,6 @@ def debug_script(src, pm=False, globs=None): finally: os.remove(srcfilename) def debug(module, name, pm=False): """Debug a single doctest docstring. Loading @@ -2687,8 +2653,6 @@ def debug(module, name, pm=False): ###################################################################### ## 10. Example Usage ###################################################################### class _TestClass: """ A pointless class, for sanity-checking of docstring testing. Loading Loading @@ -2783,7 +2747,6 @@ __test__ = {"_TestClass": _TestClass, """, } def _test(): r = unittest.TextTestRunner() r.run(DocTestSuite()) Loading