Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Revert change to django/test/_doctest.py

  • Loading branch information...
commit 8d7ddec17cbf99c3887f191a4472ecaabe0f6cf6 1 parent e2ae8b0
Ray Ashman Jr authored
Showing with 9 additions and 46 deletions.
  1. +9 −46 django/test/_doctest.py
View
55 django/test/_doctest.py
@@ -144,8 +144,6 @@ def patched_isclass(obj):
# 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))
@@ -196,7 +194,6 @@ def register_optionflag(name):
## 1. Utility Functions
######################################################################
-
def _extract_future_flags(globs):
"""
Return the compiler-flags associated with the future features that
@@ -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:
@@ -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)
@@ -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
@@ -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
@@ -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):
@@ -285,7 +277,6 @@ def truncate(self, size=None):
if hasattr(self, "softspace"):
del self.softspace
-
# Worst-case linear-time ellipsis matching.
def _ellipsis_match(want, got):
"""
@@ -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()
@@ -345,7 +335,6 @@ def _comment_line(line):
else:
return '#'
-
class _OutputRedirectingPdb(pdb.Pdb):
"""
A specialized version of the python debugger that redirects stdout
@@ -379,7 +368,6 @@ def trace_dispatch(self, *args):
finally:
sys.stdout = save_stdout
-
# [XX] Normalize with respect to os.path.pardir?
def _module_relative_path(module, path):
if not inspect.ismodule(module):
@@ -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
@@ -471,7 +458,6 @@ def __init__(self, source, want, exc_msg=None, lineno=0, indent=0,
self.options = options
self.exc_msg = exc_msg
-
class DocTest:
"""
A collection of doctest examples that should be run in a single
@@ -520,10 +506,10 @@ def __repr__(self):
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
@@ -912,7 +898,7 @@ def _from_module(self, module, object):
elif hasattr(object, '__module__'):
return module.__name__ == object.__module__
elif isinstance(object, property):
- return True # [XX] no way not be sure.
+ return True # [XX] no way not be sure.
else:
raise ValueError("object must be a class or function")
@@ -1068,7 +1054,6 @@ def _find_lineno(self, obj, source_lines):
## 5. DocTest Runner
######################################################################
-
class DocTestRunner:
"""
A class used to run DocTest test cases, and accumulate statistics.
@@ -1236,7 +1221,7 @@ def __run(self, test, compileflags, out):
# to modify them).
original_optionflags = self.optionflags
- SUCCESS, FAILURE, BOOM = range(3) # `outcome` state
+ SUCCESS, FAILURE, BOOM = range(3) # `outcome` state
check = self._checker.check_output
@@ -1289,7 +1274,7 @@ def py3_displayhook(value):
# Strip b"" and u"" prefixes from the repr and expected output
# TODO: better way of stripping the prefixes?
expected = example.want
- expected = expected.strip() # be wary of newlines
+ expected = expected.strip() # be wary of newlines
s = s.replace("u", "")
s = s.replace("b", "")
expected = expected.replace("u", "")
@@ -1303,7 +1288,7 @@ def py3_displayhook(value):
lines.append(s)
# let them match
- if s == expected: # be wary of false positives here
+ if s == expected: # be wary of false positives here
# they should be the same, print expected value
sys.stdout.write("%s\n" % example.want.strip())
@@ -1329,13 +1314,13 @@ def py3_displayhook(value):
# Don't blink! This is where the user's code gets run.
six.exec_(compile(example.source, filename, "single",
compileflags, 1), test.globs)
- self.debugger.set_continue() # ==== Example Finished ====
+ self.debugger.set_continue() # ==== Example Finished ====
exception = None
except KeyboardInterrupt:
raise
except:
exception = sys.exc_info()
- self.debugger.set_continue() # ==== Example Finished ====
+ self.debugger.set_continue() # ==== Example Finished ====
finally:
# restore the original displayhook
sys.displayhook = original_displayhook
@@ -1423,7 +1408,6 @@ def __record_outcome(self, test, f, t):
__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:
@@ -1557,7 +1541,6 @@ def merge(self, other):
t = t + t2
d[name] = f, t
-
class OutputChecker:
"""
A class used to check the whether the actual output from a doctest
@@ -1664,11 +1647,11 @@ def output_difference(self, example, got, optionflags):
# Use difflib to find their differences.
if optionflags & REPORT_UDIFF:
diff = difflib.unified_diff(want_lines, got_lines, n=2)
- diff = list(diff)[2:] # strip the diff header
+ diff = list(diff)[2:] # strip the diff header
kind = 'unified diff with -expected +actual'
elif optionflags & REPORT_CDIFF:
diff = difflib.context_diff(want_lines, got_lines, n=2)
- diff = list(diff)[2:] # strip the diff header
+ diff = list(diff)[2:] # strip the diff header
kind = 'context diff with expected followed by actual'
elif optionflags & REPORT_NDIFF:
engine = difflib.Differ(charjunk=difflib.IS_CHARACTER_JUNK)
@@ -1691,7 +1674,6 @@ def output_difference(self, example, got, optionflags):
else:
return 'Expected nothing\nGot nothing\n'
-
class DocTestFailure(Exception):
"""A DocTest example has failed in debugging mode.
@@ -1711,7 +1693,6 @@ def __init__(self, test, example, got):
def __str__(self):
return str(self.test)
-
class UnexpectedException(Exception):
"""A DocTest example has encountered an unexpected exception
@@ -1731,7 +1712,6 @@ def __init__(self, test, example, exc_info):
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.
@@ -1844,7 +1824,6 @@ def report_failure(self, out, test, example, got):
# 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):
@@ -1949,7 +1928,6 @@ class doctest.Tester, then merges the results into (or creates)
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(),
@@ -2073,7 +2051,6 @@ class doctest.Tester, then merges the results into (or creates)
return runner.failures, runner.tries
-
def run_docstring_examples(f, globs, verbose=False, name="NoName",
compileflags=None, optionflags=0):
"""
@@ -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):
@@ -2169,7 +2145,6 @@ def merge(self, other):
_unittest_reportflags = 0
-
def set_unittest_reportflags(flags):
"""Sets the unittest option flags.
@@ -2353,7 +2328,6 @@ def __repr__(self):
def shortDescription(self):
return "Doctest: " + self._dt_test.name
-
def DocTestSuite(module=None, globs=None, extraglobs=None, test_finder=None,
test_class=DocTestCase, **options):
"""
@@ -2417,7 +2391,6 @@ def DocTestSuite(module=None, globs=None, extraglobs=None, test_finder=None,
return suite
-
class DocFileCase(DocTestCase):
def id(self):
@@ -2432,7 +2405,6 @@ def format_failure(self, err):
% (self._dt_test.name, self._dt_test.filename, err)
)
-
def DocFileTest(path, module_relative=True, package=None,
globs=None, parser=DocTestParser(),
encoding=None, **options):
@@ -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.
@@ -2536,7 +2507,6 @@ def DocFileSuite(*paths, **kw):
## 9. Debugging Support
######################################################################
-
def script_from_examples(s):
r"""Extract script from text with examples.
@@ -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.
@@ -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
@@ -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.
@@ -2687,8 +2653,6 @@ def debug(module, name, pm=False):
######################################################################
## 10. Example Usage
######################################################################
-
-
class _TestClass:
"""
A pointless class, for sanity-checking of docstring testing.
@@ -2783,7 +2747,6 @@ def get(self):
""",
}
-
def _test():
r = unittest.TextTestRunner()
r.run(DocTestSuite())
Please sign in to comment.
Something went wrong with that request. Please try again.