Added a custom doctest OutputChecker that ignores differences between ints and longs in values returned from the database; refs #238
git-svn-id: http://code.djangoproject.com/svn/django/trunk@465 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
254f31819b
commit
3a1ae2164b
|
@ -27,6 +27,7 @@ class DjangoDoctestRunner(doctest.DocTestRunner):
|
|||
def __init__(self, verbosity_level, *args, **kwargs):
|
||||
self.verbosity_level = verbosity_level
|
||||
doctest.DocTestRunner.__init__(self, *args, **kwargs)
|
||||
self._checker = DjangoDoctestOutputChecker()
|
||||
|
||||
def report_start(self, out, test, example):
|
||||
if self.verbosity_level > 1:
|
||||
|
@ -40,6 +41,16 @@ class DjangoDoctestRunner(doctest.DocTestRunner):
|
|||
tb = ''.join(traceback.format_exception(*exc_info)[1:])
|
||||
log_error(test.name, "API test raised an exception",
|
||||
"Code: %r\nLine: %s\nException: %s" % (example.source.strip(), example.lineno, tb))
|
||||
|
||||
class DjangoDoctestOutputChecker(doctest.OutputChecker):
|
||||
def check_output(self, want, got, optionflags):
|
||||
ok = doctest.OutputChecker.check_output(self, want, got, optionflags)
|
||||
if not ok and (want.strip().endswith("L") or got.strip().endswith("L")):
|
||||
try:
|
||||
return long(want.strip()) == long(got.strip())
|
||||
except ValueError:
|
||||
return False
|
||||
return ok
|
||||
|
||||
class TestRunner:
|
||||
def __init__(self, verbosity_level=0):
|
||||
|
|
Loading…
Reference in New Issue